Просмотр исходного кода

Merge branch 'dev' of http://git.izouma.com/licailing/wenlvju into dev

panhui 5 лет назад
Родитель
Сommit
177e1f187b

+ 132 - 17
src/main/vue/src/views/AssignExpert.vue

@@ -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>

+ 16 - 1
src/main/vue/src/views/RateAudit.vue

@@ -171,8 +171,9 @@
                     </div>
                 </div>
             </div>
+            <el-divider direction="horizontal" content-position="left">初审记录</el-divider>
             <div class="info-content" v-for="(item, index) in rateAudits" :key="index">
-                <div class="info-item">
+                <div class="info-item" style="margin-bottom: 10px">
                     <div class="name">操作时间</div>
                     <div class="val">
                         <el-input readonly v-model="item.auditTime"></el-input>
@@ -548,6 +549,20 @@ export default {
                 width: 600px;
             }
         }
+        .name {
+            font-size: 14px;
+            font-family: PingFangSC-Regular, PingFang SC;
+            font-weight: 400;
+            color: #565b66;
+            line-height: 22px;
+            min-width: 75px;
+            margin-right: 10px;
+            text-align: right;
+        }
+
+        .val {
+            width: 190px;
+        }
     }
     .tag {
         margin: 98px 240px;

+ 11 - 3
src/main/vue/src/views/RateList.vue

@@ -166,8 +166,8 @@
                 >
                     <el-option v-for="item in dismissReason" :key="item" :label="item" :value="item"> </el-option>
                 </el-select>
-                <div style="margin-top: 15px">
-                    <el-button type="primary">确认</el-button>
+                <div style="margin: 45px 0 0 240px">
+                    <el-button type="primary" @click="saveDismiss">确认</el-button>
                 </div>
             </div>
         </el-dialog>
@@ -203,7 +203,8 @@ export default {
             },
             dialogDismiss: false,
             reason: '',
-            dismissReason: ['资料不全', '缺少附件', '无资格']
+            dismissReason: ['资料不全', '缺少附件', '无资格'],
+            form: {}
         };
     },
     created() {
@@ -360,6 +361,13 @@ export default {
             //         });
             //     });
             this.dialogDismiss = true;
+            this.form = row;
+        },
+        saveDismiss() {
+            this.audit(this.form, 'FIRST_REVIEW_DENY', this.reason);
+            this.form = '';
+            this.reason = '';
+            this.dialogDismiss = false;
         },
         supervision(id) {
             this.$router.push({

+ 16 - 2
src/main/vue/src/views/organization/RateEdit.vue

@@ -96,7 +96,7 @@
                     </el-form-item>
                 </div> -->
                 <el-form-item>
-                    <el-button type="primary" size="small" @click="onAddOtherForm()"
+                    <el-button type="primary" size="small" @click="onAddOtherForm()" v-if="!readonly"
                         >新增承办过的艺术考级活动</el-button
                     >
                 </el-form-item>
@@ -236,7 +236,7 @@
                 </div>
             </div>
             <div class="info-content" v-for="(item, index) in rateAudits" :key="index">
-                <div class="info-item">
+                <div class="info-item" style="margin-bottom: 10px">
                     <div class="name">操作时间</div>
                     <div class="val">
                         <el-input readonly v-model="item.auditTime"></el-input>
@@ -668,6 +668,20 @@ export default {
         left: 0;
         top: 12px;
     }
+    .name {
+        font-size: 14px;
+        font-family: PingFangSC-Regular, PingFang SC;
+        font-weight: 400;
+        color: #565b66;
+        line-height: 22px;
+        min-width: 75px;
+        margin-right: 10px;
+        text-align: right;
+    }
+
+    .val {
+        width: 190px;
+    }
 }
 .el-tag + .el-tag {
     margin-left: 30px;