|
@@ -28,27 +28,39 @@
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="detail">
|
|
|
资产方审批人:
|
|
|
- <span class="info">{{proDetail.initial}}</span>
|
|
|
+ <span class="info">{{proDetail.ownerApprover}}</span>
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="detail">
|
|
|
生产方审批人:
|
|
|
- <span class="info">{{proDetail.initial}}</span>
|
|
|
+ <span class="info">{{proDetail.customerApprover}}</span>
|
|
|
</el-col>
|
|
|
- <el-col :span="6" class="detail">
|
|
|
+ <el-col :span="24" class="detail">
|
|
|
生产方公司:
|
|
|
- <span class="info">{{proDetail.lifetime}}</span>
|
|
|
+ <span class="info" v-for="(item, index) in proDetail.customCompanies">
|
|
|
+ {{item.companyName}}
|
|
|
+ <span v-if="index != proDetail.customCompanies.length-1">、</span>
|
|
|
+ </span>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="detail">
|
|
|
项目模具:
|
|
|
- <span class="info">{{proDetail.RFIDcode}}</span>
|
|
|
+ <span class="info model" v-for="(item, index) in proDetail.models">
|
|
|
+ <span @click="toMold(item.id)">{{item.modelName}}({{item.modelNo}})</span>
|
|
|
+ <span v-if="index != proDetail.models.length-1">、</span>
|
|
|
+ </span>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="detail">
|
|
|
资产方人员:
|
|
|
- <span class="info">{{proDetail.mouldNumber}}</span>
|
|
|
+ <span class="info" v-for="(item, index) in proDetail.ownerUsers">
|
|
|
+ {{item.username}}
|
|
|
+ <span v-if="index != proDetail.ownerUsers.length-1">、</span>
|
|
|
+ </span>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="detail">
|
|
|
生产方人员:
|
|
|
- <span class="info">{{proDetail.project}}</span>
|
|
|
+ <span class="info" v-for="(item, index) in proDetail.customUsers">
|
|
|
+ {{item.username}}
|
|
|
+ <span v-if="index != proDetail.customUsers.length-1">、</span>
|
|
|
+ </span>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
|
|
@@ -58,25 +70,36 @@
|
|
|
</el-upload>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-table :data="documents" highlight-current-row v-loading="listLoading" style="width: 100%;height:800px;">
|
|
|
+ <el-table :data="files" highlight-current-row v-loading="listLoading" height="400" style="width: 100%;">
|
|
|
<el-table-column type="index" width="40"></el-table-column>
|
|
|
- <el-table-column prop="name" label="名称" sortable></el-table-column>
|
|
|
- <el-table-column prop="size" label="大小" width="200" sortable></el-table-column>
|
|
|
- <el-table-column prop="uploader" label="上传者" width="200" sortable></el-table-column>
|
|
|
- <el-table-column prop="uploadTime" label="上传时间" width="200" sortable></el-table-column>
|
|
|
- <el-table-column label="状态" width="200" sortable>
|
|
|
- <template slot-scope="scope">
|
|
|
- <span v-if="scope.row.state == 0">需要</span>
|
|
|
- <span v-else>不需要</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <el-table-column prop="fileName" label="名称" sortable></el-table-column>
|
|
|
+ <el-table-column prop="fileSize" label="大小" width="150" sortable></el-table-column>
|
|
|
+ <el-table-column prop="uploader" label="上传者" width="120" sortable></el-table-column>
|
|
|
+ <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
|
|
|
<el-table-column label="操作" width="220" sortable>
|
|
|
- <el-button size="small">浏览</el-button>
|
|
|
- <el-button size="small">下载</el-button>
|
|
|
- <el-button size="small" type="danger">删除</el-button>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="small">
|
|
|
+ <a :href="scope.row.url" :download="scope.row.fileName">下载</a></el-button>
|
|
|
+ <el-button size="small" type="danger" v-if="scope.row.uploaderId == user.id">删除</el-button>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-col>
|
|
|
+
|
|
|
+ <el-col :span="24" class="title">操作记录</el-col>
|
|
|
+ <el-table :data="operations" highlight-current-row v-loading="listLoading" height="400" style="width: 100%;">
|
|
|
+ <el-table-column type="index" width="40"></el-table-column>
|
|
|
+ <el-table-column prop="name" label="姓名" width="400" sortable></el-table-column>
|
|
|
+ <el-table-column prop="document" label="文档名称" sortable></el-table-column>
|
|
|
+ <el-table-column label="操作" width="400" sortable>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="scope.row.operations == 0">浏览</span>
|
|
|
+ <span v-else-if="scope.row.operations == 1">下载</span>
|
|
|
+ <span v-else>删除</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="time" label="时间" width="400" sortable></el-table-column>
|
|
|
+ </el-table>
|
|
|
</el-col>
|
|
|
|
|
|
<!--编辑界面-->
|
|
@@ -104,7 +127,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="资产方审批人">
|
|
|
+ <el-form-item label="资产方审批人" prop="ownerApproverId">
|
|
|
<el-select v-model="editForm.ownerApproverId" clearable filterable placeholder="请选择资产方审批人" value-key='id' style="width:190px">
|
|
|
<el-option v-for="item in assets" :key="item.id" :label="item.username" :value="item.id">
|
|
|
</el-option>
|
|
@@ -112,7 +135,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="生产方审批人">
|
|
|
+ <el-form-item label="生产方审批人" prop="customerApproverId">
|
|
|
<el-select v-model="editForm.customerApproverId" clearable filterable placeholder="请选择生产方审批人" value-key='id' style="width:190px">
|
|
|
<el-option v-for="item in produce" :key="item.id" :label="item.username" :value="item.id">
|
|
|
</el-option>
|
|
@@ -161,29 +184,14 @@
|
|
|
user: JSON.parse(sessionStorage.getItem('user')),
|
|
|
//临时数据
|
|
|
proDetail: {},
|
|
|
- documents: [
|
|
|
- {
|
|
|
- name: "墨盒产品验证文档.word",
|
|
|
- size: "100KB",
|
|
|
- uploader: "张富贵",
|
|
|
- uploadTime: "2019-07-24",
|
|
|
- state: 0
|
|
|
- }
|
|
|
- ],
|
|
|
- operations: [
|
|
|
- {
|
|
|
- name: "王多银",
|
|
|
- document: "墨盒产品验证文档.word",
|
|
|
- operation: 0,
|
|
|
- time: "时间"
|
|
|
- }
|
|
|
- ],
|
|
|
+ files: [],
|
|
|
|
|
|
allDetail: {
|
|
|
overflow: 'auto',
|
|
|
padding: '0px 5px',
|
|
|
height: 0
|
|
|
},
|
|
|
+
|
|
|
listLoading: false,
|
|
|
activePage: 0,
|
|
|
|
|
@@ -200,6 +208,12 @@
|
|
|
],
|
|
|
managerId: [
|
|
|
{ required: true, message: '请选择项目经理', trigger: ['blur','change'] }
|
|
|
+ ],
|
|
|
+ ownerApproverId: [
|
|
|
+ { required: true, message: '请选择资产方审批人', trigger: ['blur','change'] }
|
|
|
+ ],
|
|
|
+ customerApproverId: [
|
|
|
+ { required: true, message: '请选择生产方审批人', trigger: ['blur','change'] }
|
|
|
]
|
|
|
},
|
|
|
|
|
@@ -223,16 +237,29 @@
|
|
|
backToList() {
|
|
|
this.$router.push("/project");
|
|
|
},
|
|
|
+ toMold(id) {
|
|
|
+ this.$router.push('/moldList/' + id);
|
|
|
+ },
|
|
|
handleClick(tab, event) {
|
|
|
},
|
|
|
//获取详情
|
|
|
getDetail() {
|
|
|
- this.listLoading = true;
|
|
|
this.http.post(this.port.project.projectDetail, {
|
|
|
id: this.detailId
|
|
|
}, res => {
|
|
|
if (res.code == "ok") {
|
|
|
- this.proDetail = res.data;
|
|
|
+ var list = res.data;
|
|
|
+ var approves = res.data.approves;
|
|
|
+
|
|
|
+ for(var i in approves){
|
|
|
+ if(approves[i].subordinateType == 0){
|
|
|
+ list.ownerApprover = approves[i].approverName;
|
|
|
+ } else {
|
|
|
+ list.customerApprover = approves[i].approverName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.proDetail = list;
|
|
|
this.getMsg();
|
|
|
} else {
|
|
|
this.$message({
|
|
@@ -247,6 +274,29 @@
|
|
|
});
|
|
|
})
|
|
|
},
|
|
|
+ getFileList() {
|
|
|
+ this.listLoading = true;
|
|
|
+ // 获取文档列表
|
|
|
+ this.http.post(this.port.project.fileList, {
|
|
|
+ projectId: this.detailId
|
|
|
+ }, res => {
|
|
|
+ this.listLoading = false;
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.files = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'error'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, error => {
|
|
|
+ this.listLoading = false;
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: 'error'
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
//获取信息
|
|
|
getMsg() {
|
|
|
// 获取公司
|
|
@@ -364,13 +414,16 @@
|
|
|
});
|
|
|
})
|
|
|
},
|
|
|
+ //打开编辑页面
|
|
|
edit() {
|
|
|
this.editFormVisible = true;
|
|
|
var compArr = [] ,
|
|
|
manager = {} ,
|
|
|
ownerApproverId = '' ,
|
|
|
customerApproverId = '' ,
|
|
|
- moldArr = [];
|
|
|
+ moldArr = [] ,
|
|
|
+ assets = [] ,
|
|
|
+ produce = [];
|
|
|
for(var i in this.proDetail.customCompanies){
|
|
|
for(var j in this.company){
|
|
|
if(this.company[j].id == this.proDetail.customCompanies[i].companyId){
|
|
@@ -387,20 +440,28 @@
|
|
|
|
|
|
for(var i in this.proDetail.approves) {
|
|
|
if(this.proDetail.approves[i].subordinateType == 0){
|
|
|
- ownerApproverId = this.proDetail.approves[i].approverName;
|
|
|
+ ownerApproverId = this.proDetail.approves[i].approverId;
|
|
|
} else {
|
|
|
- customerApproverId = this.proDetail.approves[i].approverName;
|
|
|
+ customerApproverId = this.proDetail.approves[i].approverId;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
for(var i in this.molds){
|
|
|
for(var j in this.proDetail.models){
|
|
|
if(this.molds[i].id == this.proDetail.models[j].id){
|
|
|
- moldArr.push(this.molds[i])
|
|
|
+ moldArr.push(this.molds[i].id)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ for(var i in this.proDetail.ownerUsers){
|
|
|
+ assets.push(this.proDetail.ownerUsers[i].id)
|
|
|
+ }
|
|
|
+
|
|
|
+ for(var i in this.proDetail.customUsers){
|
|
|
+ produce.push(this.proDetail.customUsers[i].id)
|
|
|
+ }
|
|
|
+
|
|
|
this.editForm = {
|
|
|
id: this.proDetail.id,
|
|
|
projectName: this.proDetail.projectName,
|
|
@@ -409,14 +470,11 @@
|
|
|
ownerApproverId: ownerApproverId,
|
|
|
customerApproverId: customerApproverId,
|
|
|
modelIds: moldArr,
|
|
|
- assets: [],
|
|
|
- produce: []
|
|
|
+ assets: assets,
|
|
|
+ produce: produce
|
|
|
}
|
|
|
},
|
|
|
- //上传
|
|
|
- uploadFile(params) {
|
|
|
- console.log(params)
|
|
|
- },
|
|
|
+ //提交
|
|
|
addSubmit() {
|
|
|
this.$refs.editForm.validate((valid) => {
|
|
|
if (valid) {
|
|
@@ -444,7 +502,7 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(userIds != ""){
|
|
|
+ if(userIds != "" && this.editForm.produce.length != 0){
|
|
|
userIds += ","
|
|
|
}
|
|
|
|
|
@@ -477,7 +535,7 @@
|
|
|
message: '修改成功',
|
|
|
type: 'success'
|
|
|
});
|
|
|
- this.getUsers();
|
|
|
+ this.getDetail();
|
|
|
} else {
|
|
|
this.$message({
|
|
|
message: res.msg,
|
|
@@ -494,7 +552,33 @@
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
- }
|
|
|
+ },
|
|
|
+ //上传
|
|
|
+ uploadFile(params) {
|
|
|
+ var fileObj = params.file;
|
|
|
+ var form = new FormData();
|
|
|
+ form.append("projectId", this.proDetail.id);
|
|
|
+ form.append("file", fileObj);
|
|
|
+ this.http.uploadFile(this.port.project.uploadFile, form , res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.$message({
|
|
|
+ message: '上传成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.getFileList();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'error'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: 'error'
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
},
|
|
|
created() {
|
|
|
let height = window.innerHeight;
|
|
@@ -506,6 +590,7 @@
|
|
|
},
|
|
|
mounted() {
|
|
|
this.getDetail();
|
|
|
+ this.getFileList();
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -541,7 +626,7 @@
|
|
|
margin: 20px 0;
|
|
|
font-size: 16px;
|
|
|
line-height: 24px;
|
|
|
- border-left: 1px blue solid;
|
|
|
+ border-left: 1px #20a0ff solid;
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
@@ -561,6 +646,11 @@
|
|
|
color: grey;
|
|
|
}
|
|
|
|
|
|
+ .model {
|
|
|
+ cursor: pointer;
|
|
|
+ color:#20a0ff;
|
|
|
+ }
|
|
|
+
|
|
|
.main {
|
|
|
padding-left: 10px;
|
|
|
}
|