فهرست منبع

服务申请,服务申请管理新建编辑调整

qymljy 4 ماه پیش
والد
کامیت
4664f1d6bd

+ 67 - 0
src/HDrpManagement/serveBill/components/add.vue

@@ -212,6 +212,53 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`异常类型`)" prop="exception_type">
+                <el-select
+                    class="inline-24"
+                    v-model="form.exception_type"
+                    :placeholder="$t(`请选择异常类型`)"
+                    @focus="queryType('exceptiontype')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.exceptiontype"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`服务等级`)" prop="service_level">
+                <el-select
+                    class="inline-24"
+                    v-model="form.service_level"
+                    :placeholder="$t(`请选择服务等级`)"
+                    @focus="queryType('servicelevel')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.servicelevel"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t('评估意见')" prop="remarks">
+                <el-input
+                    type="textarea"
+                    v-model="form.evaluation_comment"
+                    :placeholder="$t(`评估意见`)"
+                ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('备注')" prop="remarks">
                 <el-input
@@ -281,6 +328,9 @@ export default {
         }-${new Date().getDate()}`,
         begdate: "",
         enddate: "",
+        exception_type:"",
+        service_level:"",
+        evaluation_comment:''
       },
       rules: {
         servicetype: [
@@ -334,6 +384,12 @@ export default {
         class2: [
           { required: true, message: this.$t("客诉大类"), trigger: "change" },
         ],
+        exception_type: [
+          { required: true, message: this.$t("请选择异常类型"), trigger: "change" },
+        ],
+        service_level: [
+          { required: true, message: this.$t("请选择服务等级"), trigger: "change" },
+        ],
         reason: [{ required: true, message: this.$t("问题描述"), trigger: "blur" }],
         begdate: [
           {
@@ -361,6 +417,11 @@ export default {
           },
         },
       },
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
     };
   },
   methods: {
@@ -427,6 +488,12 @@ export default {
     onClose(){
       this.$refs["form"].resetFields();
       this.dialogFormVisible = false;
+    },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
     }
   },
   async created() {

+ 68 - 3
src/HDrpManagement/serveBill/components/edit.vue

@@ -32,9 +32,7 @@
                 >
                   <el-input
                     readonly
-                    :disabled="
-                      accountInfo.usertype != 1 && accountInfo.usertype != 0
-                    "
+                    disabled
                     type="text"
                     slot="input"
                     size="mini"
@@ -208,6 +206,53 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`异常类型`)" prop="exception_type">
+                <el-select
+                    class="inline-24"
+                    v-model="form.exception_type"
+                    :placeholder="$t(`请选择异常类型`)"
+                    @focus="queryType('exceptiontype')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.exceptiontype"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`服务等级`)" prop="service_level">
+                <el-select
+                    class="inline-24"
+                    v-model="form.service_level"
+                    :placeholder="$t(`请选择服务等级`)"
+                    @focus="queryType('servicelevel')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.servicelevel"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t('评估意见')" prop="remarks">
+                <el-input
+                    type="textarea"
+                    v-model="form.evaluation_comment"
+                    :placeholder="$t(`评估意见`)"
+                ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('备注')" prop="remarks">
                 <el-input
@@ -275,6 +320,9 @@ export default {
         billdate: new Date(),
         begdate: "",
         enddate: "",
+        exception_type:"",
+        service_level:"",
+        evaluation_comment:''
       },
       accountInfo: sessionStorage.getItem("accountinfo"),
       rules: {
@@ -329,6 +377,12 @@ export default {
         class2: [
           { required: true, message: this.$t("客诉大类"), trigger: "change" },
         ],
+        exception_type: [
+          { required: true, message: this.$t("请选择异常类型"), trigger: "change" },
+        ],
+        service_level: [
+          { required: true, message: this.$t("请选择服务等级"), trigger: "change" },
+        ],
         reason: [
           { required: true, message: this.$t("问题描述"), trigger: "blur" },
         ],
@@ -358,6 +412,11 @@ export default {
           },
         },
       },
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
     };
   },
   methods: {
@@ -423,6 +482,12 @@ export default {
           this.form.sys_enterpriseid;
       }
     },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
+    }
   },
   async created() {
     this.getServeClass();

+ 163 - 35
src/HDrpManagement/serveBill/index.vue

@@ -9,53 +9,153 @@
       tableName="serveBillTable"
       idName="sa_serviceorderid"
       :apiId="{query:20230206091703,del:20230206091803}"
-      :options="options"
       :detailPath="{
         path:'/serveBillDetail'
       }"
       @listData="list">
-      <div slot="custom" style="display:flex">
-        <div class="label_center">
-          <label  class="search__label">{{$t('状态')}}:</label>
-          <el-select class="inline-24" v-model="where.status" :placeholder="$t(`请选择状态`)" @change="selectChange" size="small" clearable>
-            <el-option :label="$t(`待指派`)" value="待指派"></el-option>
-            <el-option :label="$t(`待处理`)" value="待处理"></el-option>
-            <el-option :label="$t(`进行中`)" value="进行中"></el-option>
-            <el-option :label="$t(`已完成`)" value="已完成"></el-option>
+      <template #custom>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("状态") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="status"
+              :placeholder="$t(`请选择状态`)"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option :label="$t(`新建`)" value="新建"></el-option>
+            <el-option :label="$t(`已提交`)" value="已提交"></el-option>
+            <el-option :label="$t(`已受理`)" value="已受理"></el-option>
+            <el-option :label="$t(`已中止`)" value="已中止"></el-option>
           </el-select>
         </div>
-        <div class="label_center">
-          <label  class="search__label">{{$t('服务类型')}}:</label>
-          <el-select class="inline-24" v-model="where.servicetype" :placeholder="$t(`请选择服务类型`)" @change="selectChange" size="small" clearable>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("服务类型") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.servicetype"
+              :placeholder="$t(`请选择服务类型`)"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
             <el-option :label="$t(`售前`)" value="售前"></el-option>
             <el-option :label="$t(`售中`)" value="售中"></el-option>
             <el-option :label="$t(`售后`)" value="售后"></el-option>
-            <el-option :label="$t(`历史售后`)" value="历史售后"></el-option>
+            <el-option
+                :label="$t(`历史售后`)"
+                :value="$t(`历史售后`)"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("客诉大类") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.class2"
+              :placeholder="$t(`请选择客诉大类`)"
+              @focus="queryType('customerclass')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.customerclass"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("异常类型") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.exception_type"
+              :placeholder="$t(`请选择异常类型`)"
+              @focus="queryType('exceptiontype')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.exceptiontype"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
           </el-select>
         </div>
-        <div class="label_center">
-          <label class="search__label" >{{$t('提交日期')}}:</label>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("服务等级") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.service_level"
+              :placeholder="$t(`请选择服务等级`)"
+              @focus="queryType('servicelevel')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.servicelevel"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("创建日期") }}:</label>
           <el-date-picker
-              style="margin-right: 24px !important;"
+              style="margin-right: 24px !important"
               size="small"
-              @change="dateChange"
+              @change="selectChange"
               value-format="yyyy-MM-dd"
-              v-model="where.date"
+              v-model="createDate"
               type="daterange"
               :range-separator="$t(`至`)"
               :start-placeholder="$t(`开始日期`)"
               :end-placeholder="$t(`结束日期`)"
-              clearable>
+              clearable
+          >
           </el-date-picker>
         </div>
-      </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("提交日期") }}:</label>
+          <el-date-picker
+              style="margin-right: 24px !important"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="submitDate"
+              type="daterange"
+              :range-separator="$t(`至`)"
+              :start-placeholder="$t(`开始日期`)"
+              :end-placeholder="$t(`结束日期`)"
+              clearable
+          >
+          </el-date-picker>
+        </div>
+      </template>
       <template v-slot:tbList="scope">
         <div v-if="scope.data.column.columnname == 'status'">
           <span :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])">{{$t(scope.data.column.data[[scope.data.column.columnname]])}}</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'service_level'">
+          <span :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])">{{
+              $t(scope.data.column.data[[scope.data.column.columnname]] || '--')
+            }}</span>
+        </div>
         <div v-else-if="scope.data.column.columnname == 'province'">
           {{ `${scope.data.column.data.province}-${scope.data.column.data.city}-${scope.data.column.data.county}` }}
         </div>
+        <div v-else-if="scope.data.column.columnname == 'servicetype'" :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])">
+          {{
+            $t(scope.data.column.data[[scope.data.column.columnname]])
+          }}
+        </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]?$t(scope.data.column.data[[scope.data.column.columnname]]):'--'}}
         </div>
@@ -70,12 +170,26 @@
 export default {
   data () {
     return {
-      options:[],
       where: {
-        status:'',
-        date: '',
-        servicetype:''
-      }
+        condition: "",
+        status: [], // 数组,状态
+        service_level: "", //服务等级
+        exception_type: "", //异常类型
+        class2: "", //客诉大类
+        servicetype: "", //服务类型
+        begindate: "", //创建时间
+        enddate: "", //创建时间
+        begindate2: "", //提交日期
+        enddate2: "" //提交日期
+      },
+      status:'',
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
+      createDate:'',
+      submitDate:''
     }
   },
   methods:{
@@ -83,19 +197,33 @@ export default {
       console.log(data)
     },
     selectChange () {
-      this.$refs.list.param.content.where = this.where
-      this.$refs.list.listData()
-    },
-    dateChange (date) {
-      if (date) {
-        this.where.begindate = date[0]
-        this.where.enddate = date[1]
-      } else {
+      if (this.status){
+        this.where.status[0] = this.status
+      }else {
+        this.where.status = []
+      }
+      if (this.createDate){
+        this.where.begindate = this.createDate[0]
+        this.where.enddate = this.createDate[1]
+      }else {
         this.where.begindate = ''
         this.where.enddate = ''
       }
-      this.$refs.list.param.content.where = this.where
-      this.$refs.list.listData()
+      if (this.submitDate){
+        this.where.begindate2 = this.submitDate[0]
+        this.where.enddate2 = this.submitDate[1]
+      }else {
+        this.where.begindate2 = ''
+        this.where.enddate2 = ''
+      }
+      this.$refs.list.param.content.where = this.where;
+      this.$refs.list.listData();
+    },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
     }
   }
 }

+ 7 - 1
src/HDrpManagement/serveBill/modules/detail.vue

@@ -23,6 +23,7 @@
           ? ['详细信息', '关联工单']
           : ['详细信息', '服务商品', '关联工单']
       "
+      @hrMain="hrMain"
       @pageChange="pageChange"
       @onEditSuccess="queryMainData($route.query.id)"
     >
@@ -30,7 +31,7 @@
       <div slot="customOperation">
         <Edit
           v-if="
-            tool.checkAuth($route.name, 'update') && mainData.status == '新建'
+            tool.checkAuth($route.name, 'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1)
           "
           class="inline-16"
           :data="mainData"
@@ -151,6 +152,7 @@ export default {
       mainData: {},
       mainAreaData: {},
       detailInfo: [],
+      isworker:''
     };
   },
   components: {
@@ -162,6 +164,10 @@ export default {
     addProduct,
   },
   methods: {
+    hrMain(data){
+      console.log(data,'输出data')
+      this.isworker = data.isworker
+    },
     async queryMainData(id) {
       const res = await this.$api.requested({
         id: 20230206091603,

+ 67 - 0
src/HDrpManagement/serveBillMag/components/add.vue

@@ -209,6 +209,53 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`异常类型`)" prop="exception_type">
+                <el-select
+                    class="inline-24"
+                    v-model="form.exception_type"
+                    :placeholder="$t(`请选择异常类型`)"
+                    @focus="queryType('exceptiontype')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.exceptiontype"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`服务等级`)" prop="service_level">
+                <el-select
+                    class="inline-24"
+                    v-model="form.service_level"
+                    :placeholder="$t(`请选择服务等级`)"
+                    @focus="queryType('servicelevel')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.servicelevel"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t('评估意见')" prop="remarks">
+                <el-input
+                    type="textarea"
+                    v-model="form.evaluation_comment"
+                    :placeholder="$t(`评估意见`)"
+                ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('备注')" prop="remarks">
                 <el-input
@@ -278,6 +325,9 @@ export default {
         }-${new Date().getDate()}`,
         begdate: "",
         enddate: "",
+        exception_type:"",
+        service_level:"",
+        evaluation_comment:''
       },
       rules: {
         servicetype: [
@@ -331,6 +381,12 @@ export default {
         class2: [
           { required: true, message: this.$t("客诉大类"), trigger: "change" },
         ],
+        exception_type: [
+          { required: true, message: this.$t("请选择异常类型"), trigger: "change" },
+        ],
+        service_level: [
+          { required: true, message: this.$t("请选择服务等级"), trigger: "change" },
+        ],
         reason: [
           { required: true, message: this.$t("问题描述"), trigger: "blur" },
         ],
@@ -360,6 +416,11 @@ export default {
           },
         },
       },
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
     };
   },
   methods: {
@@ -426,6 +487,12 @@ export default {
     onClose(){
       this.$refs["form"].resetFields();
       this.dialogFormVisible = false;
+    },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
     }
   },
   async created() {

+ 65 - 0
src/HDrpManagement/serveBillMag/components/edit.vue

@@ -37,6 +37,7 @@
                     type="text"
                     slot="input"
                     size="mini"
+                    disabled
                     @focus="
                       $refs.agent.visible = true;
                       $refs.agent.listData();
@@ -210,6 +211,53 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`异常类型`)" prop="exception_type">
+                <el-select
+                    class="inline-24"
+                    v-model="form.exception_type"
+                    :placeholder="$t(`请选择异常类型`)"
+                    @focus="queryType('exceptiontype')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.exceptiontype"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`服务等级`)" prop="service_level">
+                <el-select
+                    class="inline-24"
+                    v-model="form.service_level"
+                    :placeholder="$t(`请选择服务等级`)"
+                    @focus="queryType('servicelevel')"
+                    size="small"
+                    clearable
+                >
+                  <el-option
+                      v-for="item in options.servicelevel"
+                      :key="item.value"
+                      :label="$t(item.value)"
+                      :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t('评估意见')" prop="remarks">
+                <el-input
+                    type="textarea"
+                    v-model="form.evaluation_comment"
+                    :placeholder="$t(`评估意见`)"
+                ></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('备注')" prop="remarks">
                 <el-input
@@ -330,6 +378,12 @@ export default {
         class2: [
           { required: true, message: this.$t("客诉大类"), trigger: "change" },
         ],
+        exception_type: [
+          { required: true, message: this.$t("请选择异常类型"), trigger: "change" },
+        ],
+        service_level: [
+          { required: true, message: this.$t("请选择服务等级"), trigger: "change" },
+        ],
         reason: [
           { required: true, message: this.$t("问题描述"), trigger: "blur" },
         ],
@@ -359,6 +413,11 @@ export default {
           },
         },
       },
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
     };
   },
   methods: {
@@ -423,6 +482,12 @@ export default {
           this.form.sys_enterpriseid;
       }
     },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
+    }
   },
   async created() {
     this.getServeClass();

+ 161 - 51
src/HDrpManagement/serveBillMag/index.vue

@@ -9,71 +9,148 @@
       tableName="serveBillTable"
       idName="sa_serviceorderid"
       :apiId="{ query: 20230206091703, del: 20230206091803 }"
-      :options="options"
       :detailPath="{
         path: '/serveBillMagDetail',
       }"
-      @listData="list"
+      :autoQuery="false"
     >
-      <div slot="custom" style="display: flex">
-        <div class="label_center">
+      <template #custom>
+        <div class="mt-10">
           <label class="search__label">{{ $t("状态") }}:</label>
           <el-select
-            class="inline-24"
-            v-model="where.status"
-            :placeholder="$t(`请选择状态`)"
-            @change="selectChange"
-            size="small"
-            clearable
+              class="inline-24"
+              v-model="status"
+              :placeholder="$t(`请选择状态`)"
+              @change="selectChange"
+              size="small"
+              clearable
           >
-            <el-option :label="$t(`待指派`)" value="待指派"></el-option>
-            <el-option :label="$t(`待处理`)" value="待处理"></el-option>
-            <el-option :label="$t(`进行中`)" value="进行中"></el-option>
-            <el-option :label="$t(`已完成`)" value="已完成"></el-option>
+            <el-option :label="$t(`新建`)" value="新建"></el-option>
+            <el-option :label="$t(`已提交`)" value="已提交"></el-option>
+            <el-option :label="$t(`已受理`)" value="已受理"></el-option>
+            <el-option :label="$t(`已中止`)" value="已中止"></el-option>
           </el-select>
         </div>
-        <div class="label_center">
+        <div class="mt-10">
           <label class="search__label">{{ $t("服务类型") }}:</label>
           <el-select
-            class="inline-24"
-            v-model="where.servicetype"
-            :placeholder="$t(`请选择服务类型`)"
-            @change="selectChange"
-            size="small"
-            clearable
+              class="inline-24"
+              v-model="where.servicetype"
+              :placeholder="$t(`请选择服务类型`)"
+              @change="selectChange"
+              size="small"
+              clearable
           >
             <el-option :label="$t(`售前`)" value="售前"></el-option>
             <el-option :label="$t(`售中`)" value="售中"></el-option>
             <el-option :label="$t(`售后`)" value="售后"></el-option>
             <el-option
-              :label="$t(`历史售后`)"
-              :value="$t(`历史售后`)"
+                :label="$t(`历史售后`)"
+                :value="$t(`历史售后`)"
             ></el-option>
           </el-select>
         </div>
-        <div class="label_center">
+        <div class="mt-10">
+          <label class="search__label">{{ $t("客诉大类") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.class2"
+              :placeholder="$t(`请选择客诉大类`)"
+              @focus="queryType('customerclass')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.customerclass"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("异常类型") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.exception_type"
+              :placeholder="$t(`请选择异常类型`)"
+              @focus="queryType('exceptiontype')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.exceptiontype"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("服务等级") }}:</label>
+          <el-select
+              class="inline-24"
+              v-model="where.service_level"
+              :placeholder="$t(`请选择服务等级`)"
+              @focus="queryType('servicelevel')"
+              @change="selectChange"
+              size="small"
+              clearable
+          >
+            <el-option
+                v-for="item in options.servicelevel"
+                :key="item.value"
+                :label="$t(item.value)"
+                :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+        <div class="mt-10">
+          <label class="search__label">{{ $t("创建日期") }}:</label>
+          <el-date-picker
+              style="margin-right: 24px !important"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="createDate"
+              type="daterange"
+              :range-separator="$t(`至`)"
+              :start-placeholder="$t(`开始日期`)"
+              :end-placeholder="$t(`结束日期`)"
+              clearable
+          >
+          </el-date-picker>
+        </div>
+        <div class="mt-10">
           <label class="search__label">{{ $t("提交日期") }}:</label>
           <el-date-picker
-            style="margin-right: 24px !important"
-            size="small"
-            @change="dateChange"
-            value-format="yyyy-MM-dd"
-            v-model="where.date"
-            type="daterange"
-            :range-separator="$t(`至`)"
-            :start-placeholder="$t(`开始日期`)"
-            :end-placeholder="$t(`结束日期`)"
-            clearable
+              style="margin-right: 24px !important"
+              size="small"
+              @change="selectChange"
+              value-format="yyyy-MM-dd"
+              v-model="submitDate"
+              type="daterange"
+              :range-separator="$t(`至`)"
+              :start-placeholder="$t(`开始日期`)"
+              :end-placeholder="$t(`结束日期`)"
+              clearable
           >
           </el-date-picker>
         </div>
-      </div>
+      </template>
       <template v-slot:tbList="scope">
         <div v-if="scope.data.column.columnname == 'status'">
           <span :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])">{{
             $t(scope.data.column.data[[scope.data.column.columnname]])
           }}</span>
         </div>
+        <div v-else-if="scope.data.column.columnname == 'service_level'">
+          <span :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])">{{
+              $t(scope.data.column.data[[scope.data.column.columnname]] || '--')
+            }}</span>
+        </div>
         <div v-else-if="scope.data.column.columnname == 'province'">
           {{
             `${scope.data.column.data.province}-${scope.data.column.data.city}-${scope.data.column.data.county}`
@@ -101,34 +178,67 @@
 export default {
   data() {
     return {
-      options: [],
       where: {
-        status: "",
-        date: "",
-        servicetype: "",
+        condition: "",
+        status: [], // 数组,状态
+        service_level: "", //服务等级
+        exception_type: "", //异常类型
+        class2: "", //客诉大类
+        servicetype: "", //服务类型
+        begindate: "", //创建时间
+        enddate: "", //创建时间
+        begindate2: "", //提交日期
+        enddate2: "" //提交日期
       },
+      status:'',
+      options:{
+        customerclass:[],
+        exceptiontype:[],
+        servicelevel:[]
+      },
+      createDate:'',
+      submitDate:''
     };
   },
   methods: {
-    list(data) {
-      console.log(data);
+    list() {
+      this.$refs.list.param.content.isManage = true
+      this.$refs.list.param.content.where = this.where
+      this.$refs.list.listData()
     },
     selectChange() {
-      this.$refs.list.param.content.where = this.where;
-      this.$refs.list.listData();
-    },
-    dateChange(date) {
-      if (date) {
-        this.where.begindate = date[0];
-        this.where.enddate = date[1];
-      } else {
-        this.where.begindate = "";
-        this.where.enddate = "";
+      if (this.status){
+        this.where.status[0] = this.status
+      }else {
+        this.where.status = []
+      }
+      if (this.createDate){
+        this.where.begindate = this.createDate[0]
+        this.where.enddate = this.createDate[1]
+      }else {
+        this.where.begindate = ''
+        this.where.enddate = ''
+      }
+      if (this.submitDate){
+        this.where.begindate2 = this.submitDate[0]
+        this.where.enddate2 = this.submitDate[1]
+      }else {
+        this.where.begindate2 = ''
+        this.where.enddate2 = ''
       }
       this.$refs.list.param.content.where = this.where;
       this.$refs.list.listData();
     },
+    async queryType(type){
+      if (this.options[type].length == 0){
+        const res = await this.$store.dispatch('optiontypeselect',type)
+        this.options[type] = res.data
+      }
+    }
   },
+  mounted() {
+    this.list()
+  }
 };
 </script>
 <style>

+ 8 - 2
src/HDrpManagement/serveBillMag/modules/detail.vue

@@ -13,12 +13,13 @@
         :statusCheck="[{key:'status',value:'待处理'},{key:'status',value:'进行中'},{key:'status',value:'提交'},{key:'status',value:'待指派'},{key:'status',value:'已完成'}]"
         tags=""
         :tabs="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'?['详细信息','关联工单']:['详细信息','服务商品','关联工单']"
+        @hrMain="hrMain"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
       <div slot="tags">
       </div>
       <div slot="customOperation" >
-        <Edit v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'" class="inline-16" :data="mainData" @onSuccess="queryMainData" />
+        <Edit v-if="tool.checkAuth($route.name,'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1)" class="inline-16" :data="mainData" @onSuccess="queryMainData" />
         <changeBill v-if="mainData.status == '待指派' && tool.checkAuth($route.name,'changeBill')" class="inline-16" @onSuccess="queryMainData" :data="mainData"></changeBill>
         <customBtn
           btnName="提交"
@@ -87,7 +88,8 @@ export default {
     return {
       mainData:{},
       mainAreaData:{},
-      detailInfo:[]
+      detailInfo:[],
+      isworker:''
     }
   },
   components:{
@@ -99,6 +101,10 @@ export default {
     addProduct
   },
   methods:{
+    hrMain(data){
+      console.log(data,'输出data')
+      this.isworker = data.isworker
+    },
     async queryMainData(id) {
       const res = await this.$api.requested({
         "id":20230206091603,

+ 5 - 1
src/components/normal-basic-layout/details/index.vue

@@ -88,7 +88,8 @@
       <el-row class="flex-align-stretch no-wrap" :gutter="activeApp.isdatateam?10:activeApp.isdatafollowup?10:0">
         <el-col style="flex:1 0 auto;" :span="activeApp.isdatateam?18:activeApp.isdatafollowup?18:24">
           <slot name="customBefore"></slot>
-          <tabTemp ref="tabRef" :disabled="disabled" :status="status" :tabs="tabs" :editData="editData" :idname="idname" :attachmentDisabled="attachmentDisabled" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onTabClick="onTabClick" @newFollow="newFollow" :isFollow="activeApp.isdatafollowup">
+          <tabTemp ref="tabRef" :disabled="disabled" :status="status" :tabs="tabs" :editData="editData" :idname="idname" :attachmentDisabled="attachmentDisabled" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)"
+                   @onTabClick="onTabClick" @newFollow="newFollow" @hrMain="hrMain" :isFollow="activeApp.isdatafollowup">
             <div :slot="'slot' + index" v-for="(tab,index) in tabs" :key="tab.index">
               <slot :name="'slot' + index"></slot>
             </div>
@@ -550,6 +551,9 @@ export default {
     },
     followAdd(){
       this.$emit('followAdd')
+    },
+    hrMain(data){
+      this.$emit('hrMain',data)
     }
   },
   mounted () {

+ 1 - 0
src/components/normal-basic-layout/details/modules/tabs/tab.vue

@@ -87,6 +87,7 @@ export default {
         this.issalehr = false
       }else {
         res.data.issalehr && (this.siteid == 'HY' || this.siteid == 'YOSTEST1')  ?  this.issalehr = true : this.issalehr = false
+        this.$emit('hrMain',res.data)
       }
     }
   },

+ 4 - 0
src/components/normal-basic-layout/modules/table.vue

@@ -139,4 +139,8 @@ export default {
 /deep/.el-table .el-table__cell {
   padding: 0 !important;
 }
+/* 强制所有单元格换行 */
+/deep/ .el-table .cell {
+  white-space: normal !important;
+}
 </style>