From 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 27 五月 2025 17:25:38 +0800
Subject: [PATCH] 提交一把

---
 company/src/components/enterprise/onlineReporting.vue                                |  716 +++++++++++----------
 log/web/error.2025-05-27.0.log                                                       |    0 
 company/src/components/business/tagLibrary.vue                                       |  106 +-
 company/src/components/business/OperaSettleClaimsCheckWindow.vue                     |    2 
 company/src/components/business/OperaSolutionsBaseWindow.vue                         |   10 
 company/src/views/business/settleClaims.vue                                          |   15 
 company/src/components/business/OperaSettleClaimsWindow.vue                          |  455 +++++++------
 log/web/info.2025-05-27.0.log                                                        |   37 +
 company/src/views/business/knowledge.vue                                             |  148 ++-
 company/src/components/business/caseProgress.vue                                     |    4 
 server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java |    1 
 company/src/components/common/previewArea.vue                                        |   19 
 company/src/components/business/OperaKnowledgeWindow.vue                             |  278 +++++---
 company/src/views/business/riskReminder.vue                                          |  113 +-
 14 files changed, 1,056 insertions(+), 848 deletions(-)

diff --git a/company/src/components/business/OperaKnowledgeWindow.vue b/company/src/components/business/OperaKnowledgeWindow.vue
index 8cdec25..9674a72 100644
--- a/company/src/components/business/OperaKnowledgeWindow.vue
+++ b/company/src/components/business/OperaKnowledgeWindow.vue
@@ -15,22 +15,42 @@
                     <el-select v-model="form.labelsArr" style="width: 100%;" @change="changeLabel" multiple placeholder="璇烽�夋嫨">
                         <el-option
                             v-for="item in cateList"
-                            :key="item.id"
+                            :key="item.name"
                             :label="item.name"
-                            :value="item.id">
+                            :value="item.name">
                         </el-option>
                     </el-select>
                     <el-button size="medium" style="margin-left: 15px;" @click="$refs.tagLibrary.open('鏍囩搴�')">鏍囩搴�</el-button>
                 </div>
             </el-form-item>
-            <el-form-item label="鍦板尯" prop="area">
+          <el-form-item label="鐪佷唤" prop="provinceId">
+            <el-select   v-model="form.provinceId"   filterable @change="changeProvince" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in areas"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鍩庡競" prop="cityId">
+            <el-select  v-model="form.cityId"  clearablefilterable   placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in citys"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+<!--            <el-form-item label="鍦板尯" prop="area">
                 <el-cascader
                     v-model="form.area"
                     :options="area"
                     @change="changeArea"
                     :props="{ label: 'name', children: 'childAreasList', value: 'id' }" />
-            </el-form-item>
-            <el-form-item label="骞翠唤" prop="yearInfo">
+            </el-form-item>-->
+            <el-form-item label="骞翠唤" prop="yearInfo"  >
                 <el-date-picker
                     v-model="form.yearInfo"
                     type="year"
@@ -48,118 +68,140 @@
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import TagLibrary from '@/components/business/tagLibrary'
-    import { findTreeList, list } from '@/api/business/knowledge'
-    export default {
-        name: 'OperaKnowledgeWindow',
-        extends: BaseOpera,
-        components: { GlobalWindow, TagLibrary },
-        data () {
-            return {
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                    provinceId: '',
-                    cityId: '',
-                    title: '',
-                    link: '',
-                    labels: '',
-                    yearInfo: '',
-                    area: [],
-                    labelsArr: []
-                },
-                // 楠岃瘉瑙勫垯
-                rules: {
-                    title: [
-                        { required: true, message: '璇疯緭鍏ュ唴瀹�', trigger: 'blur' }
-                    ],
-                    link: [
-                        { required: true, message: '璇疯緭鍏ュ唴瀹�', trigger: 'blur' }
-                    ]
-                },
-                area: [],
-                cateList: []
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/knowledge',
-                'field.id': 'id'
-            })
-
-        },
-        methods: {
-            changeLabel(e) {
-                this.form.labels = e.join(',')
-            },
-            changeArea(e) {
-                if (e.length === 0) return
-                if (e.length === 1) {
-                    this.form.provinceId = e[0]
-                } else if (e.length === 2) {
-                    this.form.provinceId = e[0]
-                    this.form.cityId = e[1]
-                }
-            },
-            open (title, target) {
-                this.getLabel()
-                this.getCityTree()
-                this.title = title
-                this.visible = true
-                // 鏂板缓
-                if (target == null) {
-                    this.$nextTick(() => {
-                        this.$refs.form.resetFields()
-                        this.form[this.configData['field.id']] = null
-                    })
-                    return
-                }
-                // 缂栬緫
-                this.$nextTick(() => {
-                    for (const key in this.form) {
-                        this.form[key] = target[key]
-                    }
-                    if (this.form.labels) {
-                        this.form.labelsArr = this.form.labels.split(',').map(item => Number(item))
-                    }
-                    if (this.form.provinceId && this.form.cityId) {
-                        this.form.area = [this.form.provinceId, this.form.cityId]
-                    } else if (this.form.provinceId && !this.form.cityId) {
-                        this.form.area = [this.form.provinceId]
-                    }
-                })
-            },
-            async getLabel() {
-                this.cateList = await list()
-            },
-            async getCityTree() {
-                this.area = await findTreeList({})
-                this.setSecondLevelChildrenToNullPrecise(this.area);
-                this.area.forEach(item => {
-                    if (item.childAreasList.length === 0) {
-                        item.childAreasList = null
-                    }
-                })
-            },
-            setSecondLevelChildrenToNullPrecise(data, level = 1) {
-                if (!data || !data.length) return;
-
-                data.forEach(item => {
-                    if (item.childAreasList && item.childAreasList.length) {
-                        if (level === 1) {
-                            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
-                            item.childAreasList.forEach(child => {
-                                child.childAreasList = null;
-                            });
-                        } else {
-                            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
-                            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1);
-                        }
-                    }
-                });
-            }
-        }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import TagLibrary from '@/components/business/tagLibrary'
+import { findTreeList, list } from '@/api/business/knowledge'
+export default {
+  name: 'OperaKnowledgeWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow, TagLibrary },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        provinceId: '',
+        cityId: '',
+        title: '',
+        link: '',
+        labels: '',
+        yearInfo: '',
+        area: [],
+        labelsArr: []
+      },
+      areas: [],
+      citys: [],
+      // 楠岃瘉瑙勫垯
+      rules: {
+        title: [
+          { required: true, message: '璇疯緭鍏ュ唴瀹�', trigger: 'blur' }
+        ],
+        yearInfo: [
+          { required: true, message: '璇烽�夋嫨骞翠唤', trigger: 'blur' }
+        ],
+        labelsArr: [
+          { required: true, message: '璇烽�夋嫨琛ㄦ儏', trigger: 'blur' }
+        ],
+        provinceId: [
+          { required: true, message: '璇烽�夋嫨鐪佷唤', trigger: 'blur' }
+        ],
+        link: [
+          { required: true, message: '璇疯緭鍏ュ唴瀹�', trigger: 'blur' }
+        ]
+      },
+      area: [],
+      cateList: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/knowledge',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    changeLabel (e) {
+      this.form.labels = e.join(',')
+    },
+    changeArea (e) {
+      if (e.length === 0) return
+      if (e.length === 1) {
+        this.form.provinceId = e[0]
+      } else if (e.length === 2) {
+        this.form.provinceId = e[0]
+        this.form.cityId = e[1]
+      }
+    },
+    changeProvince (e) {
+      this.citys = []
+      this.form.cityId=null
+      this.areas.forEach(item => {
+        if (item.id === this.form.provinceId) {
+          this.citys = item.childAreasList || []
+        }
+      })
+    },
+    open (title, target) {
+      this.getLabel()
+      this.getCityTreeList()
+      this.title = title
+      this.visible = true
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        if (this.form.labels) {
+          this.form.labelsArr = this.form.labels.split(',')
+        }
+        if (this.form.provinceId && this.form.cityId) {
+          this.form.area = [this.form.provinceId, this.form.cityId]
+        } else if (this.form.provinceId && !this.form.cityId) {
+          this.form.area = [this.form.provinceId]
+        }
+      })
+    },
+    async getLabel () {
+      this.cateList = await list()
+    },
+    async getCityTreeList () {
+      this.areas = await findTreeList({})
+    },
+    async getCityTree () {
+      this.area = await findTreeList({})
+      this.setSecondLevelChildrenToNullPrecise(this.area)
+      this.area.forEach(item => {
+        if (item.childAreasList.length === 0) {
+          item.childAreasList = null
+        }
+      })
+    },
+    setSecondLevelChildrenToNullPrecise (data, level = 1) {
+      if (!data || !data.length) return
+
+      data.forEach(item => {
+        if (item.childAreasList && item.childAreasList.length) {
+          if (level === 1) {
+            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
+            item.childAreasList.forEach(child => {
+              child.childAreasList = null
+            })
+          } else {
+            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
+            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1)
+          }
+        }
+      })
+    }
+  }
+}
 </script>
diff --git a/company/src/components/business/OperaSettleClaimsCheckWindow.vue b/company/src/components/business/OperaSettleClaimsCheckWindow.vue
index e1b41a1..cb869dc 100644
--- a/company/src/components/business/OperaSettleClaimsCheckWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsCheckWindow.vue
@@ -296,7 +296,7 @@
 </script>
 <style>
     .v-modal {
-        z-index: 2000 !important;
+      //  z-index: 2000 !important;
     }
 </style>
 <style lang="scss" scoped>
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index 64359a7..01294b9 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -22,7 +22,7 @@
             <div class="box_dk" v-if="[13].includes(info.status)">
                 <div class="box_dk_title">
                     <i class="el-icon-success"></i>
-                    <span>宸叉墦娆�</span>
+                    <span style="font-weight: bold">宸叉墦娆�</span>
                 </div>
                 <div class="box_dk_list">
                     <div class="box_dk_list_row">
@@ -161,7 +161,7 @@
                     <div class="box_desc_title">
                         <span class="box_desc_title_val">鎶ユ璇︽儏</span>
                         <div class="box_desc_title_zt" v-if="info.statusName">{{info.statusName}}</div>
-                        <div class="box_desc_title_tips" v-if="info.isRisk === 1">
+                        <div class="box_desc_title_tips" @click="$refs.riskCaseReminder.open('椋庨櫓妗堜欢鎻愰啋', info.riskContent)" v-if="info.isRisk === 1">
                             <i class="el-icon-warning"></i>
                             <span>椋庨櫓妗堜欢</span>
                         </div>
@@ -183,7 +183,7 @@
                             <el-button type="primary" @click="register" v-if="[1,2].includes(info.status)">绔嬫</el-button>
                             <el-button type="primary" @click="$refs.acceptance.open('妗堜欢鍙楃悊', info.id)" v-if="[3,5].includes(info.status)">鍙楃悊</el-button>
                             <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,13,14].includes(info.status)">澶囨敞</el-button>
-                            <el-button type="primary" @click="addReport(1)" v-if="[3].includes(info.status) && info.reportNumStatus === 0">娣诲姞鎶ユ鍙�</el-button>
+                            <el-button type="primary" @click="addReport(1)" v-if="[3,7,9].includes(info.status) && info.reportNumStatus === 0">娣诲姞鎶ユ鍙�</el-button>
                             <el-button type="primary" @click="addReport(2)" v-if="[9].includes(info.status) && info.reportNumStatus === 1">缂栬緫鎶ユ鍙�</el-button>
                             <el-button type="primary" @click="$refs.adjustment.open('鐞嗙畻', info.id, 1)" v-if="[9].includes(info.status)">鐞嗙畻</el-button>
                             <el-button type="primary" @click="$refs.adjustment.open('閲嶆柊鐞嗙畻', info.id, 1)" v-if="[10].includes(info.status)">閲嶆柊鐞嗙畻</el-button>
@@ -193,7 +193,7 @@
                             <el-button type="primary" @click="supplementaryMaterials" v-if="[9].includes(info.status)">琛ュ厖鏉愭枡</el-button>
                             <el-button type="primary" @click="$refs.additionMaterial_ba.open('娣诲姞鏉愭枡', info.id)" v-if="[9,10].includes(info.status)">娣诲姞鏉愭枡</el-button>
                         </template>
-                        <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0,13,14].includes(info.status)"></el-button>
+                        <el-button icon="el-icon-refresh-left" type="primary" title="鏌ョ湅妗堜欢杩涘害" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0].includes(info.status)"></el-button>
                     </div>
                 </div>
                 <div class="box_desc_list">
@@ -210,18 +210,18 @@
                         鎶ユ浜猴細{{info.informantName}}
                     </div>
                     <div class="box_desc_list_row">
-                        鎶ユ浜鸿仈绯绘柟寮忥細{{info.informantPhone}}
+                       鎶ユ浜鸿仈绯绘柟寮忥細{{info.informantPhone}}
                     </div>
                     <div class="box_desc_list_zw"></div>
                 </div>
             </div>
-            <div class="box_fx" v-if="info.isRisk === 1">
+            <div class="box_fx" v-if="info.isRisk === 1 && showIsRisk ===true ">
                 <div class="box_fx_left">
                     <i class="el-icon-warning"></i>
                     <span class="box_fx_left_a">娉ㄦ剰锛岃妗堜欢鏈墈{info.riskContent.length}}鏉¢闄╀俊鎭�</span>
                     <span class="box_fx_left_b" @click="$refs.riskCaseReminder.open('椋庨櫓妗堜欢鎻愰啋', info.riskContent)">鏌ョ湅璇︽儏</span>
                 </div>
-                <i class="el-icon-close" @click="info.isRisk = 0"></i>
+                <i class="el-icon-close" @click="closeRiskTip"></i>
             </div>
             <div class="box_desc">
                 <div class="box_desc_head">
@@ -240,7 +240,7 @@
                         鍑洪櫓浜哄鍚嶏細{{info.memberName}}
                     </div>
                     <div class="box_desc_list_row">
-                        鍑洪櫓浜鸿韩浠借瘉鍙凤細{{info.memberIdcard}}
+                        鍑洪櫓浜鸿韩浠借瘉鍙凤細{{info.idcardNo}}
                     </div>
                     <div style="width: 33%; height: 0;"></div>
                 </div>
@@ -281,7 +281,10 @@
                         浜嬫晠绫诲瀷锛歿{returnType(info.type)}}
                     </div>
                     <div class="box_desc_list_row">
-                        鏄惁鏈夊尰鐤椾繚闄╋細{{returnName(info.medicalInsurance)}}
+                        鏄惁浼ゆ畫锛歿{returnName(info.hurtType)}}
+                    </div>
+                    <div class="box_desc_list_row">
+                        鏄惁鏈夊尰淇濓細{{returnName(info.medicalInsurance)}}
                     </div>
                     <div class="box_desc_list_row">
                         灏辫瘖绫诲瀷锛歿{returnInHospital(info.inHospital)}}
@@ -358,7 +361,7 @@
                         <span>琛ュ厖鏉愭枡</span>
                     </div>
                     <div class="box_desc_cailiao_list">
-                        <PreviewArea :list="info.supplementFileList || []" />
+                        <PreviewArea   :list="info.supplementFileList || []" />
                     </div>
                 </div>
             </div>
@@ -387,12 +390,13 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { findById, returnSettle } from '@/api/business/settleClaims'
 import {
-    register,
-    addReportNum,
-    addRemark,
-    saveSupplementDescribe,
-    updCaseType,
-    confirmFee } from '@/api/business/settleRisk'
+  register,
+  addReportNum,
+  addRemark,
+  saveSupplementDescribe,
+  updCaseType,
+  confirmFee
+} from '@/api/business/settleRisk'
 import RiskCaseReminder from '@/components/business/riskCaseReminder'
 import CaseProgress from '@/components/business/caseProgress'
 import Acceptance from '@/components/business/acceptance'
@@ -410,8 +414,9 @@
   components: { GlobalWindow, MakePayment, PreviewArea, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
   data () {
     return {
-        info: null,
-        id: null
+      info: null,
+      id: null,
+      showIsRisk: true
     }
   },
   computed: {
@@ -424,206 +429,244 @@
     })
   },
   methods: {
-      open (title, id) {
-          this.title = title
-          this.id = id
+    open (title, id) {
+      this.title = title
+      this.id = id
+      this.getDetail()
+    },
+    closeRiskTip(){
+      this.showIsRisk= false
+    },
+    setCaseType (e) {
+      updCaseType({ id: this.id, caseType: e })
+        .then(res => {
           this.getDetail()
-      },
-      setCaseType(e) {
-          updCaseType({ id: this.id, caseType: e })
-            .then(res => {
-                this.getDetail()
-            })
-      },
-      supplementaryMaterials() {
-          this.$prompt('琛ュ厖璇存槑', '琛ュ厖鏉愭枡', {
-              confirmButtonText: '鎻愪氦',
-              cancelButtonText: '鍙栨秷',
-              inputPattern: /^(?:.|\n)+$/,
-              inputErrorMessage: '琛ュ厖璇存槑涓嶈兘涓虹┖锛�',
-              beforeClose: (action, instance, done) => {
-                  if (action === 'confirm') {
-                      instance.confirmButtonLoading = true;
-                      saveSupplementDescribe({ id: this.id, describe: instance.inputValue })
-                          .finally(() => {
-                              done();
-                              instance.confirmButtonLoading = false;
-                          })
-                  } else {
-                      done();
-                  }
-              }
-          }).then(({ value }) => {
-              this.getDetail()
-          }).catch(() => {
+        })
+    },
+    supplementaryMaterials () {
+      this.$prompt('琛ュ厖璇存槑', '琛ュ厖鏉愭枡', {
+        confirmButtonText: '鎻愪氦',
+        cancelButtonText: '鍙栨秷',
+        inputType: 'textarea',
+        inputPattern: /^(?:.|\n)+$/,
+        inputErrorMessage: '琛ュ厖璇存槑涓嶈兘涓虹┖锛�',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true
+            saveSupplementDescribe({ id: this.id, describe: instance.inputValue })
+                .then((res) => {
+                  done()
+                })
+                .catch((data) => {
+                  this.$message.error(data.message)
+                })
+                .finally(() => {
+                  instance.confirmButtonLoading = false
+                })
+          } else {
+            done()
+          }
+        }
+      }).then(({ value }) => {
+        this.getDetail()
+      }).catch(() => {
 
-          });
-      },
-      addRemark() {
-          this.$prompt('澶囨敞', '娣诲姞澶囨敞', {
-              confirmButtonText: '娣诲姞',
-              cancelButtonText: '鍙栨秷',
-              inputPattern: /^(?:.|\n)+$/,
-              inputErrorMessage: '澶囨敞涓嶈兘涓虹┖锛�',
-              beforeClose: (action, instance, done) => {
-                  if (action === 'confirm') {
-                      instance.confirmButtonLoading = true;
-                      addRemark({ id: this.id, describe: instance.inputValue })
-                          .finally(() => {
-                              done();
-                              instance.confirmButtonLoading = false;
-                          })
-                  } else {
-                      done();
-                  }
-              }
-          }).then(({ value }) => {
-              this.getDetail()
-          }).catch(() => {
+      })
+    },
+    addRemark () {
+      this.$prompt('澶囨敞', '娣诲姞澶囨敞', {
+        confirmButtonText: '娣诲姞',
+        cancelButtonText: '鍙栨秷',
+        inputType: 'textarea',
+        inputPattern: /^(?:.|\n)+$/,
+        inputErrorMessage: '澶囨敞涓嶈兘涓虹┖锛�',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true
+            addRemark({ id: this.id, describe: instance.inputValue })
+                .then((res) => {
+                  done()
+                })
+                .catch((data) => {
+                  this.$message.error(data.message)
+                })
+                .finally(() => {
+                  instance.confirmButtonLoading = false
+                })
+          } else {
+            done()
+          }
+        }
+      }).then(({ value }) => {
+        this.getDetail()
+      }).catch(() => {
 
-          });
-      },
-      addReport(type) {
-          this.$prompt(`鎶ユ鍙穈, `${type === 1 ? '娣诲姞鎶ユ鍙�' : '缂栬緫鎶ユ鍙�'}`, {
-              confirmButtonText: '娣诲姞',
-              cancelButtonText: '鍙栨秷',
-              inputPattern: /^(?:.|\n)+$/,
-              inputErrorMessage: '鎶ユ鍙蜂笉鑳戒负绌猴紒',
-              beforeClose: (action, instance, done) => {
-                  if (action === 'confirm') {
-                      instance.confirmButtonLoading = true;
-                      addReportNum({ id: this.id, reportNum: instance.inputValue })
-                        .finally(() => {
-                            done();
-                            instance.confirmButtonLoading = false;
-                        })
-                  } else {
-                      done();
-                  }
-              }
-          }).then(({ value }) => {
-              this.getDetail()
-          }).catch(() => {
-
-          });
-      },
-      register() {
-          this.$prompt('绔嬫璇存槑', '绔嬫', {
-              confirmButtonText: '纭畾',
-              cancelButtonText: '鍙栨秷',
-              beforeClose: (action, instance, done) => {
-                  if (action === 'confirm') {
-                      instance.confirmButtonLoading = true;
-                      register({ id: this.id, describe: instance.inputValue, registerStatus: 3 })
-                          .finally(() => {
-                              done();
-                              instance.confirmButtonLoading = false;
-                          })
-                  } else {
-                      done();
-                  }
-              }
-          }).then(({ value }) => {
-              this.getDetail()
-          }).catch(() => {
-
-          });
-      },
-      returnCase() {
-          this.$prompt('閫�鍥炶鏄�', '閫�鍥�', {
-              confirmButtonText: '纭畾',
-              cancelButtonText: '鍙栨秷',
-              inputPattern: /^(?:.|\n)+$/,
-              inputErrorMessage: '閫�鍥炶鏄庝笉鑳戒负绌猴紒',
-              beforeClose: (action, instance, done) => {
-                  if (action === 'confirm') {
-                      instance.confirmButtonLoading = true;
-                      register({ id: this.id, describe: instance.inputValue, registerStatus: 4 })
-                          .finally(() => {
-                              done();
-                              instance.confirmButtonLoading = false;
-                          })
-                  } else {
-                      done();
-                  }
-              }
-          }).then(({ value }) => {
-              this.getDetail()
-          }).catch(() => {
-
-          });
-      },
-      getDetail() {
-          findById(this.id)
-              .then(res => {
-                  res.riskContent = JSON.parse(res.riskContent)
-                  this.info = res
-                  this.visible = true
+      })
+    },
+    addReport (type) {
+      this.$prompt('鎶ユ鍙�', `${type === 1 ? '娣诲姞鎶ユ鍙�' : '缂栬緫鎶ユ鍙�'}`, {
+        confirmButtonText: '娣诲姞',
+        cancelButtonText: '鍙栨秷',
+        inputPattern: /^(?:.|\n)+$/,
+        inputErrorMessage: '鎶ユ鍙蜂笉鑳戒负绌猴紒',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true
+            addReportNum({ id: this.id, reportNum: instance.inputValue })
+              .then((res) => {
+                done()
               })
-      },
-      // 鎾ら攢
-      revoke(id) {
-          this.$confirm('鎾ら攢鍚庯紝妗堜欢鐩存帴缁撴潫锛屾棤娉曠户缁繘琛岀悊璧旀搷浣滐紒', '鏄惁鎾ら攢鎶ユ锛�', {
-              confirmButtonText: '纭畾鎾ら攢',
-              cancelButtonText: '鎴戝啀鎯虫兂',
-              type: 'warning'
-          }).then(() => {
-              returnSettle({ id: this.info.id })
-                  .then(res => {
-                      this.getDetail()
-                  })
-          }).catch(() => {
+              .catch((data) => {
+                this.$message.error(data.message)
+              })
+              .finally(() => {
+                instance.confirmButtonLoading = false
+              })
+          } else {
+            done()
+          }
+        }
+      }).then(({ value }) => {
+        this.getDetail()
+      }).catch(() => {
 
-          });
-      },
-      returnInHospital(type) {
-          switch (type) {
-              case 0:
-                  return '浣忛櫌'
-              case 1:
-                  return '闂ㄨ瘖'
+      })
+    },
+    register () {
+      this.$prompt('绔嬫璇存槑', '绔嬫', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        inputType: 'textarea',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true
+            register({ id: this.id, describe: instance.inputValue, registerStatus: 3 })
+                .then((res) => {
+                  done()
+                })
+                .catch((data) => {
+                  this.$message.error(data.message)
+                })
+                .finally(() => {
+                  instance.confirmButtonLoading = false
+                })
+          } else {
+            done()
           }
-      },
-      returnName(type) {
-          switch (type) {
-              case 0:
-                  return '鏄�'
-              case 1:
-                  return '鍚�'
-          }
-      },
-      returnType(type) {
-          switch (type) {
-                case 0:
-                    return '宸ヤ綔鏈熼棿鍙椾激'
-              case 1:
-                  return '涓婁笅鐝�斾腑鍙椾激'
-              case 2:
-                  return '闈炲伐浣滄椂闂村彈浼�'
-              case 3:
-                  return '鎰忓鍙椾激'
-          }
-      },
-      confirmFeeInfo() {
-          this.$confirm('鏄惁纭璧斾粯閲戦?', '鎻愮ず', {
-              confirmButtonText: '纭畾',
-              cancelButtonText: '鍙栨秷',
-              type: 'warning'
-          }).then(() => {
-              confirmFee(this.id)
-                  .then(res => {
-                      this.getDetail()
-                  })
-          }).catch(() => {
+        }
+      }).then(({ value }) => {
+        this.getDetail()
+      }).catch(() => {
 
-          });
-      },
+      })
+    },
+    returnCase () {
+      this.$prompt('閫�鍥炶鏄�', '閫�鍥�', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        inputType: 'textarea',
+        inputPattern: /^(?:.|\n)+$/,
+        inputErrorMessage: '閫�鍥炶鏄庝笉鑳戒负绌猴紒',
+        beforeClose: (action, instance, done) => {
+          if (action === 'confirm') {
+            instance.confirmButtonLoading = true
+            register({ id: this.id, describe: instance.inputValue, registerStatus: 4 })
+                .then((res) => {
+                  done()
+                })
+                .catch((data) => {
+                  this.$message.error(data.message)
+                })
+                .finally(() => {
+                  instance.confirmButtonLoading = false
+                })
+          } else {
+            done()
+          }
+        }
+      }).then(({ value }) => {
+        this.getDetail()
+      }).catch(() => {
+
+      })
+    },
+    getDetail () {
+      findById(this.id)
+        .then(res => {
+          res.riskContent = JSON.parse(res.riskContent)
+          this.info = res
+          this.info.showIsRisk = true
+          this.visible = true
+        })
+    },
+    // 鎾ら攢
+    revoke (id) {
+      this.$confirm('鎾ら攢鍚庯紝妗堜欢鐩存帴缁撴潫锛屾棤娉曠户缁繘琛岀悊璧旀搷浣滐紒', '鏄惁鎾ら攢鎶ユ锛�', {
+        confirmButtonText: '纭畾鎾ら攢',
+        cancelButtonText: '鎴戝啀鎯虫兂',
+        type: 'warning'
+      }).then(() => {
+        returnSettle({ id: this.info.id })
+          .then(res => {
+            this.getDetail()
+          })
+      }).catch(() => {
+
+      })
+    },
+    returnInHospital (type) {
+      switch (type) {
+      case 0:
+        return '浣忛櫌'
+      case 1:
+        return '闂ㄨ瘖'
+      }
+    },
+    returnName (type) {
+      switch (type) {
+      case 0:
+        return '鏄�'
+      case 1:
+        return '鍚�'
+      case 2:
+        return '寰呯‘瀹�'
+      default:
+        return ''
+      }
+    },
+    returnType (type) {
+      switch (type) {
+      case 0:
+        return '宸ヤ綔鏈熼棿鍙椾激'
+      case 1:
+        return '涓婁笅鐝�斾腑鍙椾激'
+      case 2:
+        return '闈炲伐浣滄椂闂村彈浼�'
+      case 3:
+        return '鎰忓鍙椾激'
+      }
+    },
+    confirmFeeInfo () {
+      this.$confirm('鏄惁纭璧斾粯閲戦?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        confirmFee(this.id)
+          .then(res => {
+            this.getDetail()
+          })
+      }).catch(() => {
+
+      })
+    }
   }
 }
 </script>
 
 <style lang="scss" scoped>
     .box {
+        //margin-left: 30px;
         width: 100%;
         .box_tui {
             width: 100%;
@@ -987,6 +1030,7 @@
             .box_desc_head {
                 width: 100%;
                 display: flex;
+                font-weight: bold;
                 align-items: center;
                 justify-content: space-between;
                 margin-bottom: 26px;
@@ -1017,6 +1061,7 @@
                         margin-right: 20px;
                     }
                     .box_desc_title_tips {
+                      cursor: pointer;
                         width: 84px;
                         height: 25px;
                         border-radius: 15px;
diff --git a/company/src/components/business/OperaSolutionsBaseWindow.vue b/company/src/components/business/OperaSolutionsBaseWindow.vue
index 2862f64..b65c8a1 100644
--- a/company/src/components/business/OperaSolutionsBaseWindow.vue
+++ b/company/src/components/business/OperaSolutionsBaseWindow.vue
@@ -101,6 +101,8 @@
                     <el-button type="primary" @click="impor">瀵煎叆宸ョ</el-button>
                     <el-button type="text" @click="exprot">瀵煎叆妯$増xls</el-button>
                 </div>
+
+              <el-form-item label="宸叉坊鍔犲伐绉�" prop="worktypeIdList">
                 <u-table
                     :data="form.worktypeIdList"
                     border
@@ -125,6 +127,7 @@
                         </template>
                     </u-table-column>
                 </u-table>
+              </el-form-item>
             </div>
             <el-form-item label="椋庨櫓璁剧疆" prop="risk">
                 <div class="tx">
@@ -151,8 +154,8 @@
                         </div>
                         <div class="tx_item_content">
                             <span>瑙勫垯璁剧疆锛氬厑璁稿嚭闄╂椂闂村湪淇濆崟鐢熸晥鍓�</span>
-                            <el-input-number style="margin: 0 15px;" v-model="form.riskNewUserTime" :min="1"></el-input-number>
-                            <el-select v-model="form.riskNewUserUnit" style="width: 100px; margin-right: 15px;" placeholder="璇烽�夋嫨">
+                            <el-input-number style="margin: 0 15px;" :disabled="form.riskNewUserStatus === 0"   v-model="form.riskNewUserTime" :min="1"></el-input-number>
+                            <el-select v-model="form.riskNewUserUnit"  :disabled="form.riskNewUserStatus === 0"  style="width: 100px; margin-right: 15px;" placeholder="璇烽�夋嫨">
                                 <el-option label="灏忔椂" :value="1"></el-option>
                                 <el-option label="澶�" :value="2"></el-option>
                             </el-select>
@@ -283,6 +286,9 @@
           correctWarnTime: [
             { required: true, message: '璇疯緭鍏ユ壒鏀规彁閱掓椂闂�' }
           ],
+          worktypeIdList: [
+            { required: true, message: '璇峰畬鍠勫伐绉嶄俊鎭�' }
+          ],
           canAdd: [
             { required: true, validator: canAddFun }
           ]
diff --git a/company/src/components/business/caseProgress.vue b/company/src/components/business/caseProgress.vue
index 62e8ff3..e68e24a 100644
--- a/company/src/components/business/caseProgress.vue
+++ b/company/src/components/business/caseProgress.vue
@@ -3,7 +3,7 @@
         :title="title"
         width="50%"
         :withFooter="false"
-        :visible.sync="visible"
+        :visible.sync="visible"鏄惁
         :confirm-working="isWorking"
     >
         <el-timeline reverse>
@@ -11,7 +11,7 @@
                 <div style="display: flex; flex-direction: column;">
                     <span class="a">{{item.title}}</span>
                     <span class="b">{{item.creatorName}} {{item.companyName || '骞冲彴鐞嗚禂鍛�'}} {{item.createDate }}</span>
-                    <span class="c">璇存槑锛歿{item.content}}</span>
+                    <span class="c" v-if="index>0">璇存槑锛歿{item.content}}</span>
                 </div>
             </el-timeline-item>
         </el-timeline>
diff --git a/company/src/components/business/tagLibrary.vue b/company/src/components/business/tagLibrary.vue
index bd6a15c..615a38b 100644
--- a/company/src/components/business/tagLibrary.vue
+++ b/company/src/components/business/tagLibrary.vue
@@ -22,56 +22,72 @@
                 </div>
             </div>
         </div>
+      <template v-slot:footer>
+        <el-button @click="close">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import { createLabels, list, labelsDeleteById } from '@/api/business/knowledge'
-    export default {
-        name: 'tagLibrary',
-        extends: BaseOpera,
-        components: { GlobalWindow },
-        data () {
-            return {
-                value: '',
-                list: []
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/knowledge',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            async open(title, target) {
-                this.title = title
-                await this.getData()
-                this.visible = true
-            },
-            async getData() {
-                this.list = await list()
-            },
-            // 娣诲姞鏍囩
-            async add() {
-                if (!this.value) return this.$message.warning('璇峰厛杈撳叆鍐呭')
-                let res = await createLabels({ name: this.value })
-                await this.getData()
-                this.$emit('refresh')
-                this.value = ''
-                this.$message.success('娣诲姞鎴愬姛')
-            },
-            // 鍒犻櫎
-            async dele(id) {
-                let res = await labelsDeleteById(id)
-                await this.getData()
-                this.$emit('refresh')
-                this.$message.success('鍒犻櫎鎴愬姛')
-            }
-        }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { createLabels, list, labelsDeleteById } from '@/api/business/knowledge'
+export default {
+  name: 'tagLibrary',
+  extends: BaseOpera,
+  components: { GlobalWindow },
+  data () {
+    return {
+      value: '',
+      list: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/knowledge',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    async open (title, target) {
+      this.title = title
+      await this.getData()
+      this.visible = true
+    },
+    async getData () {
+      this.list = await list()
+    },
+    // 娣诲姞鏍囩
+    async add () {
+      if (!this.value) return this.$message.warning('璇峰厛杈撳叆鍐呭')
+       createLabels({ name: this.value })
+        .then(() => {
+          this.$message.success('娣诲姞鎴愬姛')
+          this.$emit('success')
+          this.getData()
+          this.$emit('refresh')
+          this.value = ''
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+    },
+    // 鍒犻櫎
+    async dele (id) {
+     labelsDeleteById(id)
+        .then(() => {
+          this.$message.success('鍒犻櫎鎴愬姛')
+          this.$emit('success')
+          this.getData()
+          this.$emit('refresh')
+          this.value = ''
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
diff --git a/company/src/components/common/previewArea.vue b/company/src/components/common/previewArea.vue
index 5eb4874..c7f4a45 100644
--- a/company/src/components/common/previewArea.vue
+++ b/company/src/components/common/previewArea.vue
@@ -1,10 +1,12 @@
-<template>
+<template   :append-to-body="true">
     <div class="box_item_list_row_l">
         <div class="desc_data_list_item" v-for="(item, index) in list" :key="index">
             <div class="desc_data_list_item_img" v-if="item.type === 0">
                 <el-image
-                    style="width: 100%; height: 100%"
+                    style="width: 100%; height: 100%;"
                     :src="item.fileurlFull"
+                    :preview-teleported="true"
+                    :append-to-body="true"
                     :preview-src-list="[item.fileurlFull]">
                 </el-image>
             </div>
@@ -27,19 +29,24 @@
         props: {
             list: {
                 type: Array,
-                default: ()=> []
+      default: ()=> []
             }
         },
         methods: {
             openFile(url) {
                 window.open(url)
-            }
+    }
         }
     }
 </script>
-
+<style>
+.el-image-viewer__wrapper{
+   z-index: 9999 !important;
+}
+</style>
 <style lang="scss" scoped>
-    .box_item_list_row_l {
+
+.box_item_list_row_l {
         width: 100%;
         display: flex;
         align-items: center;
diff --git a/company/src/components/enterprise/onlineReporting.vue b/company/src/components/enterprise/onlineReporting.vue
index 221ffe6..3ac592d 100644
--- a/company/src/components/enterprise/onlineReporting.vue
+++ b/company/src/components/enterprise/onlineReporting.vue
@@ -407,360 +407,376 @@
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import upload from '@/components/common/upload'
-    import { saveSettleClaims } from '@/api/business/settleRisk'
-    import { findById } from '@/api/business/settleClaims'
-    import { findListByDTO } from '@/api/business/member'
-    import { findList } from '@/api/business/applyChange'
-    import { findTreeList } from '@/api/business/knowledge'
-    import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
-    import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
-    import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
-    import { mapState } from 'vuex'
-    export default {
-        name: 'onlineReporting',
-        extends: BaseOpera,
-        components: { GlobalWindow, upload, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
-        computed: {
-            ...mapState(['userInfo'])
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import upload from '@/components/common/upload'
+import { saveSettleClaims } from '@/api/business/settleRisk'
+import { findById } from '@/api/business/settleClaims'
+import { findListByDTO } from '@/api/business/member'
+import { findList } from '@/api/business/applyChange'
+import { findTreeList } from '@/api/business/knowledge'
+import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
+import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
+import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
+import { mapState } from 'vuex'
+export default {
+  name: 'onlineReporting',
+  extends: BaseOpera,
+  components: { GlobalWindow, upload, OperaSettleClaimsWindow, OperaWtbApplyShopWindow, OperaInsuranceApplyDetails },
+  computed: {
+    ...mapState(['userInfo'])
+  },
+  data () {
+    return {
+      i: 0,
+      id: null,
+      statusList: [
+        {
+          name: '濉啓鍑洪櫓淇℃伅',
+          info: '瀹屾垚鎶ユ鍩虹淇℃伅濉啓'
         },
-        data () {
-            return {
-                i: 0,
-                id: null,
-                statusList: [
-                    {
-                        name: '濉啓鍑洪櫓淇℃伅',
-                        info: '瀹屾垚鎶ユ鍩虹淇℃伅濉啓'
-                    },
-                    {
-                        name: '涓婁紶鐞嗚禂鏉愭枡',
-                        info: '琛ュ厖闇�瑕佺悊璧旂殑鐩稿叧璧勬枡'
-                    },
-                    {
-                        name: '瀹屾垚鎶ユ',
-                        info: '鎻愪氦鎶ユ淇℃伅'
-                    }
-                ],
-                form: {
-                    id: null,
-                    memberId: '',
-                    idcardNo: '',
-                    insuranceApplyId: '',
-                    happenTime: '',
-                    hospital: '',
-                    area: [],
-                    areaId: '',
-                    address: '',
-                    areaInfo: '',
-                    content: '',
-                    type: 0,
-                    inHospital: 0,
-                    hurtType: 0,
-                    medicalInsurance: 0,
-                    reportFileList: [],
-                    informantName: '',
-                    informantPhone: '',
-
-                    relationFileList: [],
-                    outpatientFileList: [],
-                    hospitalFileList: [],
-                    disabilityFileList: [],
-                    otherFileList: [],
-
-                    applyDetailId: '',
-                    solutionId: '',
-                    worktypeId: '',
-                    duId: '',
-                    receiveBank: '',
-                    receiveUserName: '',
-                    receiveAccount: ''
-                },
-                rules: {
-                    receiveAccount: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    receiveUserName: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    receiveBank: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    memberId: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    idcardNo: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    happenTime: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    content: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    type: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    inHospital: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    hurtType: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    medicalInsurance: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    informantName: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                    informantPhone: [
-                        { required: true, message: '涓嶈兘涓虹┖' }
-                    ],
-                },
-                pickerOptions: {},
-                area: [],
-                user: [],
-                solutionList: []
-            }
+        {
+          name: '涓婁紶鐞嗚禂鏉愭枡',
+          info: '琛ュ厖闇�瑕佺悊璧旂殑鐩稿叧璧勬枡'
         },
-        created () {
-            this.config({
-                api: '/business/settleClaims',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            open (title, id) {
-                this.title = title
-                this.form.area = []
-                this.i = 0
-                this.solutionList = []
-                this.area = []
-                this.user = []
-                this.getUser()
-                this.getCityTree()
-                if (id) {
-                    findById(id)
-                        .then(res => {
-                            this.visible = true
-                            this.$nextTick(() => {
-                                for (const key in this.form) {
-                                    this.form[key] = res[key]
-                                }
-                                if (this.form.areaId) {
-                                    this.form.area = this.form.areaId.split(',').map(item => Number(item))
-                                }
-                                findList({ memberId: this.form.memberId })
-                                    .then(res1 => {
-                                        res1.forEach(item => {
-                                            if (item.id === res.applyDetailId) {
-                                                item.active = true
-                                                this.pickerOptions = {
-                                                    disabledDate(time) {
-                                                        return time.getTime() < new Date(item.parentStartTime).getTime() || time.getTime() > new Date(item.parentEndTime).getTime()
-                                                    }
-                                                };
-                                            } else {
-                                                item.active = false
-                                            }
-                                        })
-                                        this.solutionList = res1
-                                    })
-                            })
-                        })
-                } else {
-                    this.visible = true
-                    this.$nextTick(() => {
-                        this.$refs.form.resetFields()
-                        this.form.informantName = this.userInfo.realname
-                    })
-                }
-            },
-            continueReporting() {
-                this.i = 0
-                this.id = null
-                this.pickerOptions = {}
-                this.solutionList = []
-                this.form = {
-                    id: null,
-                    memberId: '',
-                    idcardNo: '',
-                    insuranceApplyId: '',
-                    happenTime: '',
-                    hospital: '',
-                    area: [],
-                    areaId: '',
-                    address: '',
-                    areaInfo: '',
-                    content: '',
-                    type: 0,
-                    inHospital: 0,
-                    hurtType: 0,
-                    medicalInsurance: 0,
-                    reportFileList: [],
-                    informantName: '',
-                    informantPhone: '',
-
-                    relationFileList: [],
-                    outpatientFileList: [],
-                    hospitalFileList: [],
-                    disabilityFileList: [],
-                    otherFileList: [],
-
-                    applyDetailId: '',
-                    solutionId: '',
-                    worktypeId: '',
-                    duId: '',
-                    receiveBank: '',
-                    receiveUserName: '',
-                    receiveAccount: ''
-                }
-            },
-            changeArea(e) {
-                if (!e && e.length === 0) {
-                    this.form.areaId = ''
-                    this.form.areaInfo = ''
-                } else {
-                    this.form.areaId = e.join(',')
-                    this.form.areaInfo = this.$refs.cascader.getCheckedNodes()[0].pathLabels.join(',')
-                }
-            },
-            async getCityTree() {
-                this.area = await findTreeList({})
-                this.setSecondLevelChildrenToNullPrecise(this.area);
-            },
-            setSecondLevelChildrenToNullPrecise(data, level = 1) {
-                if (!data || !data.length) return;
-
-                data.forEach(item => {
-                    if (item.childAreasList && item.childAreasList.length) {
-                        if (level === 2) {
-                            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
-                            item.childAreasList.forEach(child => {
-                                child.childAreasList = null;
-                            });
-                        } else {
-                            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
-                            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1);
-                        }
-                    }
-                });
-            },
-            getUser() {
-                findListByDTO({})
-                    .then(res => {
-                        this.user = res
-                    })
-            },
-            delFile(index, type) {
-                if (type === 1) {
-                    this.form.relationFileList.splice(index, 1)
-                } else if (type === 2) {
-                    this.form.outpatientFileList.splice(index, 1)
-                } else if (type === 3) {
-                    this.form.hospitalFileList.splice(index, 1)
-                } else if (type === 4) {
-                    this.form.disabilityFileList.splice(index, 1)
-                } else if (type === 5) {
-                    this.form.otherFileList.splice(index, 1)
-                } else if (type === 6) {
-                    this.form.reportFileList.splice(index, 1)
-                }
-            },
-            claimsUploadFile(file, type) {
-                file.fileurl = file.imgaddr
-                file.name = file.originname
-                file.fileurlFull = file.url
-                if (type === 1) {
-                    this.form.relationFileList.push(file)
-                } else if (type === 2) {
-                    this.form.outpatientFileList.push(file)
-                } else if (type === 3) {
-                    this.form.hospitalFileList.push(file)
-                } else if (type === 4) {
-                    this.form.disabilityFileList.push(file)
-                } else if (type === 5) {
-                    this.form.otherFileList.push(file)
-                } else if (type === 6) {
-                    this.form.reportFileList.push(file)
-                }
-            },
-            getSolutions(id) {
-                let row = this.user.filter(item => item.id === id)
-                this.form.idcardNo = row[0].idcardNo
-                findList({ memberId: id })
-                    .then(res => {
-                        this.form.insuranceApplyId = ''
-                        res.forEach(item => {
-                            item.active = false
-                        })
-                        this.solutionList = res
-                    })
-            },
-            changeSolution(e, i) {
-                this.solutionList.forEach((item, index) => {
-                    item.active = i === index
-                })
-                let obj = this.solutionList.filter(item => item.active)[0]
-                this.form.insuranceApplyId = obj.applyId
-                this.form.solutionId = obj.solutionId
-                this.form.worktypeId = obj.worktypeId
-                this.form.duId = obj.duId
-                this.form.applyDetailId = obj.id
-                this.form.happenTime = ''
-                this.pickerOptions = {
-                    disabledDate(time) {
-                        return time.getTime() < new Date(obj.parentStartTime).getTime() || time.getTime() > new Date(obj.parentEndTime).getTime()
-                    }
-                };
-            },
-            // 鏌ョ湅淇濆崟璇︽儏
-            jumpSolutionDetail(id, solutionType) {
-                if (solutionType === 1) {
-                    this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: id })
-                } else {
-                    this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: id })
-                }
-            },
-            confirm(saveType) {
-                this.isWorking = true
-                saveSettleClaims({...this.form, saveType})
-                    .then(res => {
-                        console.log(res)
-                        if (saveType === 0) {
-                            this.visible = false
-                        } else {
-                            this.id = res
-                            this.i = 2
-                        }
-                        this.$emit('success')
-                    })
-                    .finally(() => {
-                        this.isWorking = false
-                    })
-            },
-            next() {
-                this.$refs.form.validate((valid) => {
-                    if (!valid) return
-                    this.i++
-                    // this.isWorking = true
-                    // createSys(obj)
-                    //     .then(() => {
-                    //         this.visible = false
-                    //         this.$emit('success')
-                    //     })
-                    //     .catch(e => {
-                    //         this.$tip.apiFailed(e)
-                    //     })
-                    //     .finally(() => {
-                    //         this.isWorking = false
-                    //     })
-                })
-            }
+        {
+          name: '瀹屾垚鎶ユ',
+          info: '鎻愪氦鎶ユ淇℃伅'
         }
+      ],
+      form: {
+        id: null,
+        memberId: '',
+        idcardNo: '',
+        insuranceApplyId: '',
+        happenTime: '',
+        hospital: '',
+        area: [],
+        areaId: '',
+        address: '',
+        areaInfo: '',
+        content: '',
+        type: 0,
+        inHospital: 0,
+        hurtType: 0,
+        medicalInsurance: 0,
+        reportFileList: [],
+        informantName: '',
+        informantPhone: '',
+
+        relationFileList: [],
+        outpatientFileList: [],
+        hospitalFileList: [],
+        disabilityFileList: [],
+        otherFileList: [],
+
+        applyDetailId: '',
+        solutionId: '',
+        worktypeId: '',
+        duId: '',
+        receiveBank: '',
+        receiveUserName: '',
+        receiveAccount: ''
+      },
+      rules: {
+        receiveAccount: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        receiveUserName: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        receiveBank: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        memberId: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        idcardNo: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        happenTime: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        content: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        type: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        inHospital: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        hurtType: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        medicalInsurance: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        informantName: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ],
+        informantPhone: [
+          { required: true, message: '涓嶈兘涓虹┖' }
+        ]
+      },
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now(); // 绂佺敤鏈潵鐨勬棩鏈�
+        }
+      },
+      area: [],
+      user: [],
+      solutionList: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/settleClaims',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    open (title, id) {
+      this.title = title
+      this.form.area = []
+      this.i = 0
+      this.solutionList = []
+      this.area = []
+      this.user = []
+      this.getUser()
+      this.getCityTree()
+      if (id) {
+        findById(id)
+          .then(res => {
+            this.visible = true
+            this.$nextTick(() => {
+              for (const key in this.form) {
+                this.form[key] = res[key]
+              }
+              if (this.form.areaId) {
+                this.form.area = this.form.areaId.split(',').map(item => Number(item))
+              }
+              findList({ memberId: this.form.memberId })
+                .then(res1 => {
+                  res1.forEach(item => {
+                    if (item.id === res.applyDetailId) {
+                      item.active = true
+                      this.pickerOptions = {
+                        disabledDate (time) {
+                          var start = new Date(item.startTime)
+                          var end = new Date(item.endTime)
+                          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+                        }
+                      }
+                    } else {
+                      item.active = false
+                    }
+                  })
+                  this.solutionList = res1
+                })
+            })
+          })
+      } else {
+        this.visible = true
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form.informantName = this.userInfo.realname
+        })
+      }
+    },
+    continueReporting () {
+      this.i = 0
+      this.id = null
+      this.pickerOptions = {}
+      this.solutionList = []
+      this.form = {
+        id: null,
+        memberId: '',
+        idcardNo: '',
+        insuranceApplyId: '',
+        happenTime: '',
+        hospital: '',
+        area: [],
+        areaId: '',
+        address: '',
+        areaInfo: '',
+        content: '',
+        type: 0,
+        inHospital: 0,
+        hurtType: 0,
+        medicalInsurance: 0,
+        reportFileList: [],
+        informantName: '',
+        informantPhone: '',
+
+        relationFileList: [],
+        outpatientFileList: [],
+        hospitalFileList: [],
+        disabilityFileList: [],
+        otherFileList: [],
+
+        applyDetailId: '',
+        solutionId: '',
+        worktypeId: '',
+        duId: '',
+        receiveBank: '',
+        receiveUserName: '',
+        receiveAccount: ''
+      }
+    },
+    changeArea (e) {
+      if (!e && e.length === 0) {
+        this.form.areaId = ''
+        this.form.areaInfo = ''
+      } else {
+        this.form.areaId = e.join(',')
+        this.form.areaInfo = this.$refs.cascader.getCheckedNodes()[0].pathLabels.join(',')
+      }
+    },
+    async getCityTree () {
+      this.area = await findTreeList({})
+      this.setSecondLevelChildrenToNullPrecise(this.area)
+    },
+    setSecondLevelChildrenToNullPrecise (data, level = 1) {
+      if (!data || !data.length) return
+
+      data.forEach(item => {
+        if (item.childAreasList && item.childAreasList.length) {
+          if (level === 2) {
+            // 杩欐槸绗竴绾ц妭鐐癸紝澶勭悊鍏跺瓙鑺傜偣锛堢浜岀骇锛�
+            item.childAreasList.forEach(child => {
+              child.childAreasList = null
+            })
+          } else {
+            // 缁х画閫掑綊澶勭悊鏇存繁灞傜骇
+            this.setSecondLevelChildrenToNullPrecise(item.childAreasList, level + 1)
+          }
+        }
+      })
+    },
+    getUser () {
+      findListByDTO({})
+        .then(res => {
+          this.user = res
+        })
+    },
+    delFile (index, type) {
+      if (type === 1) {
+        this.form.relationFileList.splice(index, 1)
+      } else if (type === 2) {
+        this.form.outpatientFileList.splice(index, 1)
+      } else if (type === 3) {
+        this.form.hospitalFileList.splice(index, 1)
+      } else if (type === 4) {
+        this.form.disabilityFileList.splice(index, 1)
+      } else if (type === 5) {
+        this.form.otherFileList.splice(index, 1)
+      } else if (type === 6) {
+        this.form.reportFileList.splice(index, 1)
+      }
+    },
+    claimsUploadFile (file, type) {
+      file.fileurl = file.imgaddr
+      file.name = file.originname
+      file.fileurlFull = file.url
+      if (type === 1) {
+        this.form.relationFileList.push(file)
+      } else if (type === 2) {
+        this.form.outpatientFileList.push(file)
+      } else if (type === 3) {
+        this.form.hospitalFileList.push(file)
+      } else if (type === 4) {
+        this.form.disabilityFileList.push(file)
+      } else if (type === 5) {
+        this.form.otherFileList.push(file)
+      } else if (type === 6) {
+        this.form.reportFileList.push(file)
+      }
+    },
+    getSolutions (id) {
+      const row = this.user.filter(item => item.id === id)
+      this.form.idcardNo = row[0].idcardNo
+      findList({ memberId: id })
+        .then(res => {
+          this.form.insuranceApplyId = ''
+          res.forEach(item=> {
+              item.active = false
+          })
+          this.solutionList = res
+          this.changeSolution(null,0)
+        })
+    },
+    changeSolution (e, i) {
+      this.pickerOptions = {}
+      if(this.solutionList.length < i){
+        return
+      }
+      this.solutionList.forEach((item, index) => {
+        item.active = i === index
+      })
+      const obj = this.solutionList.filter(item => item.active)[0]
+      this.pickerOptions = {
+        disabledDate (time) {
+          var start = new Date(obj.startTime)
+          var end = new Date(obj.endTime)
+          return ( time.getTime() < start.getTime() ||  time.getTime()>end.getTime())
+        }
+      }
+      this.form.insuranceApplyId = obj.applyId
+      this.form.solutionId = obj.solutionId
+      this.form.worktypeId = obj.worktypeId
+      this.form.duId = obj.duId
+      this.form.applyDetailId = obj.id
+      this.form.happenTime = obj.startTime
+      console.log(this.pickerOptions)
+    },
+    // 鏌ョ湅淇濆崟璇︽儏
+    jumpSolutionDetail (id, solutionType) {
+      if (solutionType === 1) {
+        this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: id })
+      } else {
+        this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: id })
+      }
+    },
+    confirm (saveType) {
+      this.isWorking = true
+      saveSettleClaims({ ...this.form, saveType })
+        .then(res => {
+          console.log(res)
+          if (saveType === 0) {
+            this.visible = false
+          } else {
+            this.id = res
+            this.i = 2
+          }
+          this.$emit('success')
+        }).catch(err => {
+            this.$tip.apiFailed(err)
+         })
+        .finally(() => {
+          this.isWorking = false
+        })
+    },
+    next () {
+      this.$refs.form.validate((valid) => {
+        if (!valid) return
+        this.i++
+        // this.isWorking = true
+        // createSys(obj)
+        //     .then(() => {
+        //         this.visible = false
+        //         this.$emit('success')
+        //     })
+        //     .catch(e => {
+        //         this.$tip.apiFailed(e)
+        //     })
+        //     .finally(() => {
+        //         this.isWorking = false
+        //     })
+      })
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
diff --git a/company/src/views/business/knowledge.vue b/company/src/views/business/knowledge.vue
index 1d8ab69..90b7f19 100644
--- a/company/src/views/business/knowledge.vue
+++ b/company/src/views/business/knowledge.vue
@@ -2,15 +2,29 @@
     <TableLayout :permissions="['business:knowledge:query']">
         <!-- 鎼滅储琛ㄥ崟 -->
         <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="鏍囬/鍐呭" prop="title">
-                <el-input v-model="searchForm.title" placeholder="璇疯緭鍏ユ爣棰樺唴瀹�" @keypress.enter.native="search"></el-input>
+            <el-form-item label="鏍囬" prop="title">
+                <el-input v-model="searchForm.title" style="width: 120px"  clearable placeholder="璇疯緭鍏ユ爣棰�" @keypress.enter.native="search"></el-input>
             </el-form-item>
-            <el-form-item label="鐪佷唤缂栫爜" prop="provinceId">
-                <el-input v-model="searchForm.provinceId" placeholder="璇疯緭鍏ョ渷浠界紪鐮�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
-            <el-form-item label="鍩庡競缂栫爜" prop="cityId">
-                <el-input v-model="searchForm.cityId" placeholder="璇疯緭鍏ュ煄甯傜紪鐮�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
+          <el-form-item label="鐪佷唤" prop="area">
+            <el-select style="width: 120px"  v-model="searchForm.provinceId" clearable filterable @change="changeProvince" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in areas"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鍩庡競" prop="area">
+            <el-select style="width: 120px" v-model="searchForm.cityId"  clearablefilterable @change="search" placeholder="璇烽�夋嫨">
+              <el-option
+                  v-for="item in citys"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
             <section>
                 <el-button type="primary" @click="search">鎼滅储</el-button>
 <!--                <el-button type="primary" :loading="isWorking.export" v-permissions="['business:knowledge:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
@@ -25,18 +39,17 @@
             </ul>
             <div class="list" v-loading="isWorking.search" v-if="tableData.list.length > 0">
                 <div class="list-item" v-for="(item, index) in tableData.list" :key="index">
-                    <div class="list-item-title">
-                        <span>{{item.title}}</span>
+                    <div class="list-item-title" @click="gourl(item.link)">
+                        <span >{{item.title}}</span>
                         <i class="el-icon-arrow-right"></i>
                     </div>
-                    <div class="list-item-cates" v-if="item.labelNames">
-                        <div class="list-item-cates-row" v-for="(label, index) in item.labelNames.split(',')" :key="index">鏀跨瓥娉曡labels</div>
-                        <div class="list-item-cates-row">{{label}}</div>
+                    <div class="list-item-cates" v-if="item.labels">
+                        <div class="list-item-cates-row" v-for="(label, index) in item.labels.split(',')" :key="index">  {{label}}</div>
                     </div>
                     <div class="list-item-footer">
                         <div class="left">
                             <div class="list-item-footer-row">閫傜敤鍦板尯锛歿{item.cityName ? item.cityName : item.provinceName}}</div>
-                            <div class="list-item-footer-row">閫傜敤骞翠唤锛歿{item.yearInfo}}</div>
+                            <div class="list-item-footer-row">閫傜敤骞翠唤锛歿{item.yearInfo}} 骞�</div>
                         </div>
                         <div class="right">
                             <el-button type="text" size="medium" style="margin-right: 15px; color: red;" @click="dele(item.id)">鍒犻櫎</el-button>
@@ -61,50 +74,71 @@
 </template>
 
 <script>
-    import BaseTable from '@/components/base/BaseTable'
-    import TableLayout from '@/layouts/TableLayout'
-    import Pagination from '@/components/common/Pagination'
-    import OperaKnowledgeWindow from '@/components/business/OperaKnowledgeWindow'
-    import { deleteById } from '@/api/business/knowledge'
-    export default {
-        name: 'Knowledge',
-        extends: BaseTable,
-        components: { TableLayout, Pagination, OperaKnowledgeWindow },
-        data () {
-            return {
-                // 鎼滅储
-                searchForm: {
-                    provinceId: '',
-                    cityId: '',
-                    title: ''
-                }
-            }
-        },
-        created () {
-            this.config({
-                module: '鐭ヨ瘑搴撲俊鎭〃',
-                api: '/business/knowledge',
-                'field.id': 'id',
-                'field.main': 'id'
-            })
-            this.search()
-        },
-        methods: {
-            dele(id) {
-                this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
-                    confirmButtonText: '纭畾',
-                    cancelButtonText: '鍙栨秷',
-                    type: 'warning'
-                }).then(async () => {
-                    let res = await deleteById(id)
-                    this.search()
-                    this.$message.success('鍒犻櫎鎴愬姛')
-                }).catch(() => {
-
-                });
-            }
-        }
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaKnowledgeWindow from '@/components/business/OperaKnowledgeWindow'
+import {deleteById, findTreeList} from '@/api/business/knowledge'
+export default {
+  name: 'Knowledge',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaKnowledgeWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        provinceId: '',
+        cityId: '',
+        title: ''
+      },
+      areas: [],
+      citys: []
     }
+  },
+  created () {
+    this.config({
+      module: '鐭ヨ瘑搴撲俊鎭〃',
+      api: '/business/knowledge',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+    this.getCityTree()
+  },
+  methods: {
+    changeProvince (e) {
+      this.citys = []
+      this.searchForm.cityId=null
+      this.areas.forEach(item => {
+        if (item.id === this.searchForm.provinceId) {
+          this.citys = item.childAreasList || []
+        }
+      })
+      this.search()
+    },
+    gourl (url) {
+      if (url) {
+        window.open(url)
+      }
+    },
+    dele (id) {
+      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(async () => {
+        const res = await deleteById(id)
+        this.search()
+        this.$message.success('鍒犻櫎鎴愬姛')
+      }).catch(() => {
+
+      })
+    },
+    async getCityTree () {
+      this.areas = await findTreeList({})
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
diff --git a/company/src/views/business/riskReminder.vue b/company/src/views/business/riskReminder.vue
index 6e26dc5..42df0d3 100644
--- a/company/src/views/business/riskReminder.vue
+++ b/company/src/views/business/riskReminder.vue
@@ -3,23 +3,23 @@
         <div class="tx_item">
             <div class="tx_item_head">
                 <span>澶氭鍑洪櫓鎻愰啋</span>
-                <el-switch active-value="1" inactive-value="0" v-model="form.riskTimesOpen"></el-switch>
+                <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskTimesOpen"></el-switch>
             </div>
             <div class="tx_item_content">
                 <span>瑙勫垯璁剧疆锛氬悓涓�浜轰竴骞村唴鎶ユ</span>
-                <el-input-number style="margin: 0 15px;" v-model="form.riskTimesReportTimes" :min="0"></el-input-number>
+                <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;"  :disabled="form.riskTimesOpen === '0'"  v-model="form.riskTimesReportTimes" :min="0"></el-input-number>
                 <span>娆″強浠ヤ笂锛岃繘琛屾彁閱掋��</span>
             </div>
         </div>
         <div class="tx_item">
             <div class="tx_item_head">
                 <span>鐤戜技閲嶅鎶ユ鎻愰啋</span>
-                <el-switch active-value="1" inactive-value="0" v-model="form.riskRepeatReportOpen"></el-switch>
+                <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskRepeatReportOpen"></el-switch>
             </div>
             <div class="tx_item_content">
                 <span>瑙勫垯璁剧疆锛�</span>
-                <el-input-number style="margin: 0 15px;" v-model="form.riskRepeatReportTime" :min="0"></el-input-number>
-                <el-select v-model="form.riskRepeatReportTimeUnit" style="width: 100px; margin-right: 15px;" placeholder="璇烽�夋嫨">
+                <el-input-number  style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskRepeatReportTime" :disabled="form.riskRepeatReportOpen === '0'" :min="0"></el-input-number>
+                <el-select v-model="form.riskRepeatReportTimeUnit" :disabled="form.riskRepeatReportOpen === '0'"  style="width: 90px; min-width: 90px; margin-right: 15px;" placeholder="璇烽�夋嫨">
                     <el-option label="灏忔椂" value="1"></el-option>
                     <el-option label="澶�" value="2"></el-option>
                 </el-select>
@@ -29,23 +29,23 @@
         <div class="tx_item">
             <div class="tx_item_head">
                 <span>绱㈣禂娆℃暟杩囧鎻愰啋</span>
-                <el-switch active-value="1" inactive-value="0" v-model="form.riskClaimTimesOpen"></el-switch>
+                <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskClaimTimesOpen"></el-switch>
             </div>
             <div class="tx_item_content">
                 <span>瑙勫垯璁剧疆锛氬悓涓�涓繚鍗�1骞村唴绱㈣禂娆℃暟瓒呰繃</span>
-                <el-input-number style="margin: 0 15px;" v-model="form.riskClaimTimes" :min="0"></el-input-number>
+                <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskClaimTimes"  :disabled="form.riskClaimTimesOpen === '0'" :min="0"></el-input-number>
                 <span>娆★紝杩涜鎻愰啋銆�</span>
             </div>
         </div>
         <div class="tx_item">
             <div class="tx_item_head">
                 <span>鏂板憳宸ュ嚭闄╂彁閱�</span>
-                <el-switch active-value="1" inactive-value="0" v-model="form.riskNewMemberOpen"></el-switch>
+                <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskNewMemberOpen"></el-switch>
             </div>
             <div class="tx_item_content">
                 <span>瑙勫垯璁剧疆锛氫繚鍗曠敓鏁堢殑</span>
-                <el-input-number style="margin: 0 15px;" v-model="form.riskNewMemberTime" :min="0"></el-input-number>
-                <el-select v-model="form.riskNewMemberTimeUnit" style="width: 100px; margin-right: 15px;" placeholder="璇烽�夋嫨">
+                <el-input-number style="width: 100px; min-width: 100px;margin: 0 15px;" v-model="form.riskNewMemberTime" :disabled="form.riskNewMemberOpen === '0'" :min="0"></el-input-number>
+                <el-select v-model="form.riskNewMemberTimeUnit" style="width: 90px; min-width: 90px; margin-right: 15px;"  :disabled="form.riskNewMemberOpen === '0'" placeholder="璇烽�夋嫨">
                     <el-option label="灏忔椂" value="1"></el-option>
                     <el-option label="澶�" value="2"></el-option>
                 </el-select>
@@ -55,11 +55,12 @@
         <div class="tx_item">
             <div class="tx_item_head">
                 <span>鏁忔劅璇嶈缃�</span>
-                <el-switch active-value="1" inactive-value="0" v-model="form.riskSensitiveWordsOpen"></el-switch>
+                <el-switch :active-value="'1'" :inactive-value="'0'" v-model="form.riskSensitiveWordsOpen"></el-switch>
             </div>
             <div class="tx_item_content">
                 <span>瑙勫垯璁剧疆锛�</span>
                 <el-input
+                    :disabled="form.riskSensitiveWordsOpen === '0'"
                     type="textarea"
                     :rows="5"
                     placeholder="姣忎釜鏁忔劅璇嶈鐢ㄢ��;鈥濆垎闅旓紝濡傞鎶�;楂樼┖;澶滈棿;浜ら�氫簨鏁�;鎼繍绛夊叾浠栧瓧绗�"
@@ -74,51 +75,52 @@
 </template>
 
 <script>
-    import { updRiskConfig, getRiskConfig } from '@/api/business/settleRisk'
-    export default {
-        name: "riskReminder",
-        data() {
-            return {
-                form: {
-                    riskClaimTimes: '0',
-                    riskClaimTimesOpen: '0',
-                    riskNewMemberOpen: '0',
-                    riskNewMemberTime: '0',
-                    riskNewMemberTimeUnit: '0',
-                    riskRepeatReportOpen: '0',
-                    riskRepeatReportTime: '0',
-                    riskRepeatReportTimeUnit: '0',
-                    riskSensitiveWords: '0',
-                    riskSensitiveWordsOpen: '0',
-                    riskTimesOpen: '0',
-                    riskTimesReportTimes: '0'
-                },
-                loading: false
-            }
-        },
-        created() {
-            this.getRiskConfigs()
-        },
-        methods: {
-            async getRiskConfigs() {
-                let res = await getRiskConfig()
-                for (const key in this.form) {
-                    this.form[key] = res[key]
-                }
-            },
-            submit() {
-                this.loading = true
-                updRiskConfig(this.form)
-                    .then(res => {
-                        this.getRiskConfigs()
-                        this.$message.success('淇濆瓨鎴愬姛')
-                    })
-                    .finally(() => {
-                        this.loading = false
-                    })
-            }
-        }
+import { updRiskConfig, getRiskConfig } from '@/api/business/settleRisk'
+export default {
+  name: 'riskReminder',
+  data () {
+    return {
+      form: {
+        riskClaimTimes: '0',
+        riskClaimTimesOpen: '0',
+        riskNewMemberOpen: '0',
+        riskNewMemberTime: '0',
+        riskNewMemberTimeUnit: '0',
+        riskRepeatReportOpen: '0',
+        riskRepeatReportTime: '0',
+        riskRepeatReportTimeUnit: '0',
+        riskSensitiveWords: '0',
+        riskSensitiveWordsOpen: '0',
+        riskTimesOpen: '0',
+        riskTimesReportTimes: '0'
+      },
+      loading: false
     }
+  },
+  created () {
+    this.getRiskConfigs()
+  },
+  methods: {
+    async getRiskConfigs () {
+      const res = await getRiskConfig()
+      for (const key in this.form) {
+        this.form[key] = res[key]
+      }
+      console.log(this.form)
+    },
+    submit () {
+      this.loading = true
+      updRiskConfig(this.form)
+        .then(res => {
+          this.getRiskConfigs()
+          this.$message.success('淇濆瓨鎴愬姛')
+        })
+        .finally(() => {
+          this.loading = false
+        })
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -138,6 +140,7 @@
         }
         .tx_item {
             width: 49%;
+            //min-width: 500px;
             padding: 30px 20px;
             box-sizing: border-box;
             background-color: #ffffff;
diff --git a/company/src/views/business/settleClaims.vue b/company/src/views/business/settleClaims.vue
index a08142d..c27ca9c 100644
--- a/company/src/views/business/settleClaims.vue
+++ b/company/src/views/business/settleClaims.vue
@@ -3,13 +3,13 @@
         <!-- 鎼滅储琛ㄥ崟 -->
         <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
             <el-form-item label="鍛樺伐濮撳悕" prop="memberName">
-                <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+                <el-input v-model="searchForm.memberName" clearable placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
             </el-form-item>
             <el-form-item label="韬唤璇�" prop="memberIdcardNo">
-                <el-input v-model="searchForm.memberIdcardNo" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+                <el-input v-model="searchForm.memberIdcardNo" clearable placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
             </el-form-item>
             <el-form-item label="鎶ユ鍗曚綅" prop="companyId" v-if="userInfo.type === 0">
-                <el-select v-model="searchForm.companyId" filterable placeholder="璇烽�夋嫨" @change="search">
+                <el-select v-model="searchForm.companyId" clearable filterable placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in companyList"
                         :key="item.id"
@@ -19,7 +19,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="淇濋櫓鏂规" prop="baseSolutionId">
-                <el-select v-model="searchForm.baseSolutionId" filterable placeholder="璇烽�夋嫨" @change="search">
+                <el-select v-model="searchForm.baseSolutionId"  clearable filterable placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in solutionList"
                         :key="item.baseId"
@@ -29,7 +29,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="妗堜欢鐘舵��" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
+                <el-select v-model="searchForm.status" clearable placeholder="璇烽�夋嫨" @change="search">
                     <el-option label="鏆傚瓨涓�" value="0"></el-option>
                     <el-option label="宸叉姤妗�" value="1"></el-option>
                     <el-option label="寰呯珛妗�" value="2"></el-option>
@@ -48,7 +48,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="娲鹃仯鍗曚綅" prop="duName">
-              <el-input v-model="searchForm.duName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+              <el-input v-model="searchForm.duName" placeholder="璇疯緭鍏�" clearable @keypress.enter.native="search"></el-input>
             </el-form-item>
             <section>
                 <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -79,6 +79,9 @@
                 <el-table-column prop="duName" label="娲鹃仯鍗曚綅" min-width="100px"></el-table-column>
                 <el-table-column prop="worktypeName" label="鎵�灞炲伐绉�" min-width="100px"></el-table-column>
                 <el-table-column prop="baoxianStartTime" label="淇濋櫓鐢熸晥璧锋湡" min-width="100px"></el-table-column>
+                <el-table-column prop="isRisk" label="鏄惁椋庨櫓妗堜欢" min-width="100px">
+                  <template slot-scope="{row}"> <span style="color: red" v-if="row.isRisk === 1">椋庨櫓妗堜欢</span></template>
+                </el-table-column>
                 <el-table-column prop="createDate" label="鎶ユ鏃堕棿" min-width="100px"></el-table-column>
                 <el-table-column
                     v-if="containPermissions(['business:settleclaims:update', 'business:settleclaims:delete'])"
diff --git a/log/web/error.2025-05-27.0.log b/log/web/error.2025-05-27.0.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/log/web/error.2025-05-27.0.log
diff --git a/log/web/info.2025-05-27.0.log b/log/web/info.2025-05-27.0.log
new file mode 100644
index 0000000..9c2a1a6
--- /dev/null
+++ b/log/web/info.2025-05-27.0.log
@@ -0,0 +1,37 @@
+2025-05-27 10:04:22.659 [main] INFO  com.doumee.CompanyApplication - Starting CompanyApplication on DESKTOP-77EHGKJ with PID 31268 (D:\code\idea2023\git\yunyibao\server\company\target\classes started by T14 in D:\code\idea2023\git\yunyibao)
+2025-05-27 10:04:22.668 [main] INFO  com.doumee.CompanyApplication - The following profiles are active: dev
+2025-05-27 10:04:26.676 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode!
+2025-05-27 10:04:26.683 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2025-05-27 10:04:27.098 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 355ms. Found 0 Redis repository interfaces.
+2025-05-27 10:04:29.000 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCredentialsMatcher' of type [com.doumee.config.shiro.ShiroCredentialsMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.066 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties' of type [org.springframework.boot.autoconfigure.data.redis.RedisProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.073 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration' of type [org.springframework.boot.autoconfigure.data.redis.LettuceConnectionConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.453 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'lettuceClientResources' of type [io.lettuce.core.resource.DefaultClientResources] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.667 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'redisConnectionFactory' of type [org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.802 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'sessionRedisTemplate' of type [org.springframework.data.redis.core.RedisTemplate] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.802 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCache' of type [com.doumee.config.shiro.ShiroCache] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.805 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroTokenManager' of type [com.doumee.config.shiro.ShiroTokenManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.806 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroSessionDAO' of type [com.doumee.config.shiro.ShiroSessionDAO] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.816 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCacheManager' of type [com.doumee.config.shiro.ShiroCacheManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.884 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroRealm' of type [com.doumee.config.shiro.ShiroRealm] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:29.886 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroConfig' of type [com.doumee.config.shiro.ShiroConfig$$EnhancerBySpringCGLIB$$49ba0da8] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:31.470 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'sessionManager' of type [com.doumee.config.shiro.ShiroSessionManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:31.474 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'shiroCache' of type [com.doumee.config.shiro.ShiroCache] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:31.475 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'securityManager' of type [org.apache.shiro.web.mgt.DefaultWebSecurityManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:31.633 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'authorizationAttributeSourceAdvisor' of type [org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
+2025-05-27 10:04:32.705 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 10031 (http)
+2025-05-27 10:04:32.736 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-10031"]
+2025-05-27 10:04:32.737 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
+2025-05-27 10:04:32.738 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.31]
+2025-05-27 10:04:33.139 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
+2025-05-27 10:04:33.139 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 10281 ms
+2025-05-27 10:04:40.541 [main] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
+2025-05-27 10:04:58.579 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
+2025-05-27 10:05:05.599 [main] WARN  s.d.s.r.operation.OperationImplicitParameterReader - Unable to interpret the implicit parameter configuration with dataType: Integer, dataTypeClass: class java.lang.Void
+2025-05-27 10:05:07.134 [main] WARN  s.d.s.r.operation.OperationImplicitParameterReader - Unable to interpret the implicit parameter configuration with dataType: Integer, dataTypeClass: class java.lang.Void
+2025-05-27 10:05:09.344 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-10031"]
+2025-05-27 10:05:09.488 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 10031 (http) with context path ''
+2025-05-27 10:05:09.518 [main] INFO  com.doumee.CompanyApplication - Started CompanyApplication in 49.121 seconds (JVM running for 56.066)
+2025-05-27 10:06:37.703 [SpringContextShutdownHook] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Shutting down ExecutorService 'applicationTaskExecutor'
+2025-05-27 10:06:37.730 [SpringContextShutdownHook] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closing ...
+2025-05-27 10:06:37.737 [SpringContextShutdownHook] INFO  com.alibaba.druid.pool.DruidDataSource - {dataSource-1} closed
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
index 61bd2c4..499431b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -34,7 +34,6 @@
 
     @Autowired
     private LabelsMapper labelsMapper;
-
     @Override
     public Integer create(Labels labels) {
         LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();

--
Gitblit v1.9.3