|
|
@@ -4,11 +4,53 @@
|
|
|
:model="formData"
|
|
|
:rules="rules"
|
|
|
ref="form"
|
|
|
- label-width="90px"
|
|
|
+ label-width="110px"
|
|
|
label-position="right"
|
|
|
size="small"
|
|
|
- style="max-width: 600px;"
|
|
|
+ style="max-width: 680px;"
|
|
|
>
|
|
|
+ <el-divider direction="horizontal" content-position="left">基本信息</el-divider>
|
|
|
+ <el-form-item label="承办单位名称" prop="name">
|
|
|
+ <el-input v-model="formData.name" placeholder="请输入承办单位名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="introduction" label="单位概况">
|
|
|
+ <el-input
|
|
|
+ readonly
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 3, maxRows: 4 }"
|
|
|
+ placeholder="请输入单位概况"
|
|
|
+ v-model="formData.introduction"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="add-con" v-for="(item, index) in collaborates" :key="index">
|
|
|
+ <div v-if="!item.del" style="padding: 10px 0">
|
|
|
+ <div class="parameters1">
|
|
|
+ <el-form-item prop="gradingOrganizationId" label="考级机构">
|
|
|
+ <el-select v-model="item.gradingOrganizationId" placeholder="所属考级机构">
|
|
|
+ <el-option
|
|
|
+ v-for="item in grading"
|
|
|
+ :key="item.value"
|
|
|
+ :value="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :disabled="readonly"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="artTypeId" label="代理专业">
|
|
|
+ <el-cascader
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="item.artTypeId"
|
|
|
+ :props="optionProps"
|
|
|
+ :options="artTypes"
|
|
|
+ :show-all-levels="false"
|
|
|
+ placeholder="请选择专业"
|
|
|
+ >
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-divider direction="horizontal" content-position="left">分配专家组</el-divider>
|
|
|
<el-form-item prop="reviewTime" label="审核时间">
|
|
|
<el-date-picker
|
|
|
v-model="dateRange"
|
|
|
@@ -30,9 +72,10 @@
|
|
|
clearable
|
|
|
placeholder="请选择专家组长"
|
|
|
>
|
|
|
- <el-option v-for="item in users" :key="item.id" :value="item.id" :label="item.nickname">
|
|
|
- <span style="float: left">{{ item.nickname }}</span>
|
|
|
- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span>
|
|
|
+ <el-option v-for="item in expert" :key="item.value" :value="item.value" :label="item.label">
|
|
|
+ <!-- <span style="float: left">{{ item.nickname }}</span>
|
|
|
+ <span style="float: left">——{{ item.artType }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span> -->
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
@@ -47,9 +90,9 @@
|
|
|
clearable
|
|
|
placeholder="请选择专家组员"
|
|
|
>
|
|
|
- <el-option v-for="item in users" :key="item.id" :value="item.id" :label="item.nickname">
|
|
|
- <span style="float: left">{{ item.nickname }}</span>
|
|
|
- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span>
|
|
|
+ <el-option v-for="item in expert" :key="item.value" :value="item.value" :label="item.label">
|
|
|
+ <!-- <span style="float: left">{{ item.nickname }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span> -->
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
<el-button @click="chooseEmp" v-if="formData.status == 'ASSIGN_EXPERT'">添加</el-button>
|
|
|
@@ -57,6 +100,7 @@
|
|
|
<el-table :data="emps">
|
|
|
<el-table-column prop="nickname" label="用户名"></el-table-column>
|
|
|
<el-table-column prop="phone" label="手机号"></el-table-column>
|
|
|
+ <el-table-column prop="artType" label="专业"></el-table-column>
|
|
|
<el-table-column label="操作" v-if="formData.status == 'ASSIGN_EXPERT'">
|
|
|
<template slot-scope="{ row }">
|
|
|
<el-button @click="remove(row)" type="danger" size="mini" plain>移除</el-button>
|
|
|
@@ -65,13 +109,6 @@
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="材料" v-if="audits.length > 0">
|
|
|
- <div class="subform" v-for="(item, index) in audits" :key="index">
|
|
|
- <el-input style="margin-bottom: 10px" v-model="item.createdAt"></el-input>
|
|
|
- <el-input :rows="3" type="textarea" style="margin-bottom: 10px" v-model="item.remark"></el-input>
|
|
|
- <multi-upload v-model="item.img"></multi-upload>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button @click="onSave" :loading="saving" type="primary" v-if="formData.status == 'ASSIGN_EXPERT'"
|
|
|
>保存</el-button
|
|
|
@@ -98,6 +135,13 @@ export default {
|
|
|
.post('/user/all1', { size: 1000, query: { del: false } }, { body: 'json' })
|
|
|
.then(data => {
|
|
|
this.users = data.content;
|
|
|
+ data.content.forEach(item => {
|
|
|
+ this.expert.push({
|
|
|
+ label: item.nickname + '-' + item.artType + '-' + item.phone,
|
|
|
+ value: item.id
|
|
|
+ });
|
|
|
+ });
|
|
|
+ console.log(this.expert);
|
|
|
this.getEmp(res);
|
|
|
});
|
|
|
this.$http
|
|
|
@@ -109,12 +153,45 @@ export default {
|
|
|
.then(item => {
|
|
|
this.audits = item.content;
|
|
|
});
|
|
|
+ this.$http
|
|
|
+ .post(
|
|
|
+ '/collaborate/all',
|
|
|
+ { size: 100, query: { rateId: this.$route.query.id } },
|
|
|
+ { body: 'json' }
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ this.collaborates = res.content;
|
|
|
+ });
|
|
|
})
|
|
|
.catch(e => {
|
|
|
console.log(e);
|
|
|
this.$message.error(e.error);
|
|
|
});
|
|
|
}
|
|
|
+ this.$http
|
|
|
+ .post('/gradingOrganization/all', { size: 1000 }, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ if (res.content.length > 0) {
|
|
|
+ res.content.forEach(item => {
|
|
|
+ this.grading.push({
|
|
|
+ label: item.name,
|
|
|
+ value: item.id
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ this.$http
|
|
|
+ .post('/artType/allList')
|
|
|
+ .then(res => {
|
|
|
+ this.artTypes = this.delChild(res);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -130,7 +207,21 @@ export default {
|
|
|
employeeIds: [],
|
|
|
userPackage: [],
|
|
|
dateRange: [],
|
|
|
- audits: []
|
|
|
+ audits: [],
|
|
|
+ grading: [],
|
|
|
+ artTypes: [],
|
|
|
+ optionProps: {
|
|
|
+ value: 'id',
|
|
|
+ label: 'name',
|
|
|
+ children: 'children',
|
|
|
+ multiple: true,
|
|
|
+ emitPath: false,
|
|
|
+ checkStrictly: true,
|
|
|
+ expandTrigger: 'hover'
|
|
|
+ },
|
|
|
+ readonly: true,
|
|
|
+ collaborates: [],
|
|
|
+ expert: []
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -175,6 +266,7 @@ export default {
|
|
|
return item.id === data[index];
|
|
|
})
|
|
|
);
|
|
|
+ console.log(this.emps);
|
|
|
}
|
|
|
this.employeeIds = data;
|
|
|
}
|
|
|
@@ -193,16 +285,39 @@ export default {
|
|
|
remove(row) {
|
|
|
this.emps.pop(row);
|
|
|
this.employeeIds.pop(this.employeeId);
|
|
|
+ },
|
|
|
+ delChild(list) {
|
|
|
+ return list.map(item => {
|
|
|
+ const info = {
|
|
|
+ ...item,
|
|
|
+ ['children']:
|
|
|
+ item['children'] && item['children'].length > 0 ? this.delChild(item['children']) : null
|
|
|
+ };
|
|
|
+ return info;
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
+.edit-view {
|
|
|
+ // padding-left: 20%;
|
|
|
+ .add-con {
|
|
|
+ background-color: #f7f7f7;
|
|
|
+ width: 100%;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
.subform {
|
|
|
padding: 16px 16px 16px 16px;
|
|
|
- background: #f2f3f5;
|
|
|
+ background: #f7f7f7;
|
|
|
border-radius: 5px;
|
|
|
border: 1px solid #eee;
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
+.parameters1 {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 23px;
|
|
|
+}
|
|
|
</style>
|