Răsfoiți Sursa

监管记录

licailing 4 ani în urmă
părinte
comite
b5f7313b6e
1 a modificat fișierele cu 80 adăugiri și 46 ștergeri
  1. 80 46
      src/main/vue/src/components/RegulationDrawer.vue

+ 80 - 46
src/main/vue/src/components/RegulationDrawer.vue

@@ -7,7 +7,7 @@
         @close="closeDrawer"
         destroy-on-close
     >
-        <div v-if="lists.length == 0 && checkMap.get(recordId).length == 0">
+        <div v-if="lists.length == 0 && checks.length == 0">
             <div style="text-align:center;padding:100px 0; font-size: 14px; color: #4a4646" v-if="!edit">暂无数据</div>
         </div>
         <div style="margin: 30px">
@@ -38,7 +38,7 @@
                     </div>
                 </el-timeline-item>
             </el-timeline>
-            <!-- <el-timeline v-else-if="edit">
+            <el-timeline v-else-if="edit">
                 <el-timeline-item
                     :timestamp="tipsType[index]"
                     placement="top"
@@ -56,15 +56,10 @@
                         <multi-upload-regu v-model="item.img"></multi-upload-regu>
                     </div>
                 </el-timeline-item>
-            </el-timeline> -->
+            </el-timeline>
 
-            <el-timeline reverse v-if="checkMap.get(recordId).length > 0 && !edit">
-                <el-timeline-item
-                    :timestamp="item.createdAt"
-                    placement="top"
-                    v-for="item in checkMap.get(recordId)"
-                    :key="item.id"
-                >
+            <el-timeline reverse v-if="checks.length > 0 && !edit">
+                <el-timeline-item :timestamp="item.createdAt" placement="top" v-for="item in checks" :key="item.id">
                     <div style="font-size: 14px; color: #4a4646">
                         {{ item.content }}
                     </div>
@@ -80,20 +75,35 @@
                     </el-image>
                 </el-timeline-item>
             </el-timeline>
-            <div v-else-if="edit">
-                <div v-for="item in checkMap.get(recordId)" :key="item.id">
-                    <el-input type="textarea" :rows="2" v-model="item.content" style="width: 90%"></el-input>
-                    <el-button type="danger" icon="el-icon-delete" circle style="margin:5px"></el-button>
-                    <div style="margin-top:5px">
-                        <multi-upload-regu v-model="item.file"></multi-upload-regu>
+            <div v-if="edit">
+                <div v-for="(item, index) in checks" :key="item.id" class="list-item">
+                    <div class="title">
+                        <span>备注{{ index + 1 }}</span>
+                    </div>
+                    <el-input class="list-info" type="textarea" v-model="item.content"></el-input>
+                    <multi-upload-regu class="list-info" v-model="item.file"></multi-upload-regu>
+                    <div class="list-add">
+                        <el-button type="danger" @click="onDeleteForm(index)" size="mini" plain>删除</el-button>
+                        <el-button
+                            type="primary"
+                            @click="onAddForm"
+                            v-if="index === checks.length - 1"
+                            size="mini"
+                            plain
+                            >新增备注</el-button
+                        >
                     </div>
                 </div>
-                <el-button type="primary" round size="mini" style="margin-bottom: 10px">添加</el-button>
+                <div v-if="checks.length == 0">
+                    <el-button type="primary" @click="onAddForm" size="mini" plain style="margin-bottom: 14px"
+                        >新增备注</el-button
+                    >
+                </div>
             </div>
 
-            <div style="margin-top: 10px">
+            <div>
                 <el-button @click="edit = true" size="mini" plain v-if="!edit">编辑</el-button>
-                <el-button @click="saveRow(recordId)" type="success" size="mini" plain v-if="edit" :saving="saving"
+                <el-button @click="submit" type="success" size="mini" plain v-if="edit" :saving="saving"
                     >保存</el-button
                 >
                 <el-button @click="edit = false" size="mini" plain v-if="edit">取消</el-button>
@@ -109,7 +119,7 @@ export default {
     data() {
         return {
             lists: [],
-            checkMap: new Map(),
+            // checkMap: new Map(),
             tipsType: {
                 examOrganization: '是否履行考前备案手续(此项为否,不再检查下面内容)',
                 examSite: '是否在考场明显位置张贴《考级简章》',
@@ -124,7 +134,8 @@ export default {
             },
             recordId: '',
             edit: false,
-            saving: false
+            saving: false,
+            checks: []
         };
     },
     computed: {
@@ -161,10 +172,7 @@ export default {
             this.expand(row);
         },
         expand(row) {
-            let checks = new Map([...this.checkMap]);
-            // if (checks.has(row)) {
-            //     return;
-            // }
+            // let checks = new Map([...this.checkMap]);
             this.$http
                 .post(
                     'recordCheck/all',
@@ -176,18 +184,25 @@ export default {
                     { body: 'json' }
                 )
                 .then(res => {
-                    if (!res.empty) {
-                        checks.set(row, res.content);
-                    } else {
-                        return Promise.reject();
+                    if (res.content.lenght > 0) {
+                        this.checks = res.content;
                     }
+                    // if (!res.empty) {
+                    // checks.set(row, res.content);
+
+                    // } else {
+                    //     return Promise.reject();
+                    // }
                 })
                 .catch(e => {
-                    checks.set(row, []);
-                })
-                .then(() => {
-                    this.checkMap = new Map(checks);
+                    // checks.set(row, []);
+                    console.log(e);
                 });
+            // .then(() => {
+            //     this.checkMap = new Map(checks);
+            //     console.log(this.checkMap);
+            //     console.log(this.checkMap.get(row));
+            // });
             this.$http
                 .post(
                     'recordExpertAudit/all',
@@ -222,26 +237,32 @@ export default {
             this.$http
                 .post('/recordCheck/batchSave', { checks: this.saveOtherJson })
                 .then(res => {
-                    this.saving = false;
-                    this.$message.success('成功');
+                    this.$nextTick(() => {
+                        this.$http.post('/recordExpertAudit/batchSave', this.dataCon, { body: 'json' });
+                    });
+                    this.$message.success('受理成功');
+                    this.getData();
                 })
                 .catch(e => {
                     console.log(e);
                     this.saving = false;
                     this.$message.error(e.error);
                 });
-            this.$http
-                .post('/recordExpertAudit/batchSave', this.dataCon, { body: 'json' })
-                .then(res => {
-                    this.saving = false;
-                    this.$message.success('成功');
-                    this.edit = false;
+        },
+        onAddForm() {
+            this.checks.push({
+                content: '',
+                file: []
+            });
+        },
+        onDeleteForm(index) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'warning' })
+                .then(() => {
+                    const checks = [...this.checks];
+                    checks.splice(index, 1);
+                    this.checks = checks;
                 })
-                .catch(e => {
-                    console.log(e);
-                    this.saving = false;
-                    this.$message.error(e.error);
-                });
+                .catch(e => {});
         }
     }
 };
@@ -271,4 +292,17 @@ export default {
 /deep/.el-radio__input.is-disabled + span.el-radio__label {
     color: #606266; // #409EFF;
 }
+.list-info {
+    width: 480px;
+    margin-top: 10px;
+    display: block;
+}
+
+.list-item {
+    padding-bottom: 30px;
+    .title {
+        font-size: 16px;
+        font-weight: bold;
+    }
+}
 </style>