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

1993 移动端增加数据总数显示
1980 子 用户满意度统计功能改进 / 移动端H5对应功能调整

cyy 1 год назад
Родитель
Сommit
7162ce6428

+ 116 - 62
src/views/platform/bpmn/satisfaction/satisfaction.vue

@@ -62,24 +62,25 @@
           readonly
         />
         <van-field
-          v-model="keHuLianXiRen"
+          v-model="keHu"
           required
-          label="用户姓名:"
-          placeholder="请输入用户姓名"
+          label="用户单位:"
+          placeholder="请输入用户单位"
           label-width="6em"
           clearable
         />
         <van-field
-          v-model="keHu"
-          required
-          label="用户单位:"
-          placeholder="请输入用户单位"
+          v-model="keHuLianXiRen"
+    
+          label="用户姓名:"
+          placeholder="请输入用户姓名"
           label-width="6em"
           clearable
         />
+        
         <van-field
           v-model="lianxidianhua"
-          required
+      
           label="用户电话:"
           placeholder="请输入用户电话"
           label-width="6em"
@@ -93,7 +94,7 @@
         />
         <van-field
           v-model="keHuLianXiYouXian"
-          required
+  
           label="用户邮箱:"
           placeholder="请输入用户邮箱"
           label-width="6em"
@@ -106,7 +107,27 @@
           ]"
         />
       </van-form>
-      <van-cell-group class="marginF">
+      <van-cell-group v-if="peizhi.length>0" v-for="(item,i) in peizhi" :key="i" class="marginF">
+        <div
+          class="verticalLine"
+          style="width:100%;text-align:left;padding: 1em 0 1em 0.5em;margin: 0;"
+        >
+          {{ item.name }}
+        </div>
+        <div class="scoreLine">
+          <van-rate
+            v-model="item.val"
+            :count="6"
+            color="#67c23a"
+            void-icon="star"
+            void-color="rgb(236, 236, 236)"
+          />
+          <div v-if="item.val != ''" class="score">
+            {{ getRote(item.val) }}
+          </div>
+        </div>
+      </van-cell-group>
+      <!-- <van-cell-group class="marginF">
         <div
           class="verticalLine"
           style="width:100%;text-align:left;padding: 1em 0 1em 0.5em;margin: 0;"
@@ -200,7 +221,7 @@
             {{ getRote(wenTiWuDaAn) }}
           </div>
         </div>
-      </van-cell-group>
+      </van-cell-group> -->
       <ibps-uploader
         v-model="fuJianShangChuanArray"
         class="paddingNone marginF"
@@ -235,12 +256,13 @@
         </van-radio-group>
 
         <van-field
-          :value="qingNinTianXie"
+          v-model="qingNinTianXie"
           autosize
           class="typeStyle"
           type="textarea"
           placeholder="请填写对检验科意见与建议"
           label-width="0"
+          v-if="touSu!='无'"
           clearable
         />
       </van-cell-group>
@@ -312,6 +334,7 @@ export default {
         '非常满意'
       ],
       level: null,
+      peizhi:[],
       peiZhi1: '服务态度',
       peiZhi2: '检验服务能力',
       peiZhi3: '检验报告及时性',
@@ -391,17 +414,23 @@ export default {
       this.getMu()
     },
     onSubmit() {
+      const { first, second } = this.$store.getters.level || {}
       const info = this.$store.getters.userInfo
       const useId = info.user.id
       const detpId = info.employee.positions
 
       const list1 = [
-        'keHuLianXiRen',
-        'keHu',
-        'lianxidianhua',
-        'keHuLianXiYouXian'
+        // 'keHuLianXiRen',
+        'keHu'
+        // 'lianxidianhua',
+        // 'keHuLianXiYouXian'
+      ]
+      const list2 = [
+        // '用户姓名', 
+        '用户单位',
+        // '用户电话', 
+        // '用户邮箱'
       ]
-      const list2 = ['用户姓名', '用户单位', '用户电话', '用户邮箱']
       for (const item in list1) {
         if (!this[list1[item]]) {
           return this.$toast({
@@ -410,6 +439,12 @@ export default {
           })
         }
       }
+      if (!this.qingNinTianXie&&this.touSu=='有') {
+        return this.$toast({
+          duration: 2000, // 持续展示 toast
+          message: '请输入意见'
+        })
+      }
 
       // const tmpArray = this.fuJianShangChuanArray
       // this.fuJianShangChuanArray.forEach(item => {
@@ -432,42 +467,51 @@ export default {
         ]
       }
       const paraValue = {
-        nianFen: this.$methCommon.time(4),
-        // guanLianKeHu: this.buMenName,
-        keHu: this.keHu,
-        lianXiDianHua: this.lianxidianhua,
-        keHuLianXiRen: this.keHuLianXiRen,
-        keHuLianXiYouXian: this.keHuLianXiYouXian,
-        fuWuXiangMu: this.fuWuXiangMu,
-        fuWuLeiXing: this.fuWuLeiXing,
-        pingFen1: this.setRote(this.wenTiYiDaAn),
-        pingFen2: this.setRote(this.wenTiErDaAn),
-        pingFen3: this.setRote(this.wenTiSanDaAn),
-        pingFen4: this.setRote(this.wenTiSiDaAn),
-        pingFen5: this.setRote(this.wenTiWuDaAn),
-        yiJianHeJianYi: this.qingNinTianXie,
+        // nianFen: this.$methCommon.time(4),
+        // // guanLianKeHu: this.buMenName,
+        diDian: first,
+        danWei: this.keHu,
+        dianHua: this.lianxidianhua,
+        xingMing: this.keHuLianXiRen,
+        youXiang: this.keHuLianXiYouXian,
+        leiXing: this.fuWuXiangMu,
+        laiYuan: this.fuWuLeiXing,
+        // pingFen1: this.setRote(this.wenTiYiDaAn),
+        // pingFen2: this.setRote(this.wenTiErDaAn),
+        // pingFen3: this.setRote(this.wenTiSanDaAn),
+        // pingFen4: this.setRote(this.wenTiSiDaAn),
+        // pingFen5: this.setRote(this.wenTiWuDaAn),
+        yiJianNeiRong: this.touSu=='无'?'':this.qingNinTianXie,
         bianZhiRen: useId,
         bianZhiShiJian: this.$methCommon.time(16),
-        bianZhiBuMen: this.mainPosition.id || detpId,
+        bianZhiBuMen: this.mainPosition===null ? detpId : this.mainPosition.id,
 
         shiFouGuoShen: '已编制',
-        shiWuShuoMing: this.shiWuShuoMing,
-        qianMing: this.qianMing,
-        touSu: this.touSu,
-        diDian: this.level.second || this.level.first,
-        peiZhi1: this.peiZhi1,
-        peiZhi2: this.peiZhi2,
-        peiZhi3: this.peiZhi3,
-        peiZhi4: this.peiZhi4,
-        peiZhi5: this.peiZhi5,
-        fuJian: this.fuJianShangChuanArray
+        // shiWuShuoMing: this.shiWuShuoMing,
+        // qianMing: this.qianMing,
+        yiJian: this.touSu,
+        // diDian: this.level.second || this.level.first,
+        // peiZhi1: this.peiZhi1,
+        // peiZhi2: this.peiZhi2,
+        // peiZhi3: this.peiZhi3,
+        // peiZhi4: this.peiZhi4,
+        // peiZhi5: this.peiZhi5,
+        fuJian: this.fuJianShangChuanArray,
+        myddczb:[]
       }
-      paraValue.zongFen =
-        parseInt(paraValue.pingFen1) +
-        parseInt(paraValue.pingFen2) +
-        parseInt(paraValue.pingFen3) +
-        parseInt(paraValue.pingFen4) +
-        parseInt(paraValue.pingFen5)
+      this.peizhi.forEach(element => {
+        paraValue.myddczb.push({
+          diDian: first,
+          pingJiaNeiRong: element.name,
+          pingFen: this.opinionList[element.val - 1]
+        })
+      })
+      // paraValue.zongFen =
+      //   parseInt(paraValue.pingFen1) +
+      //   parseInt(paraValue.pingFen2) +
+      //   parseInt(paraValue.pingFen3) +
+      //   parseInt(paraValue.pingFen4) +
+      //   parseInt(paraValue.pingFen5)
       para.parameters[2].value = JSON.stringify(paraValue)
       // const that = this
       findFormJsonByBo(para).then(res => {
@@ -489,23 +533,33 @@ export default {
       })
     },
     getMu() {
-      const second = this.level.second
-      const sql = `select * from t_myddcpzb where di_dian_ = '${second}' order by create_time_ desc LIMIT 1`
+      const { first, second } = this.$store.getters.level || {}
+      const sql = `select id_ as configId, pei_zhi_xiang_ as configData from t_mydpz where di_dian_ = '${second || first}' order by create_time_ desc`
       this.$common.request('sql', sql).then(res => {
         const { data = [] } = res.variables || {}
-        if (data.length > 0) {
-          this.peiZhi1 = data[0].pei_zhi_1_
-          this.peiZhi2 = data[0].pei_zhi_2_
-          this.peiZhi3 = data[0].pei_zhi_3_
-          this.peiZhi4 = data[0].pei_zhi_4_
-          this.peiZhi5 = data[0].pei_zhi_5_
-        } else {
-          this.peiZhi1 = '服务态度'
-          this.peiZhi2 = '检验服务能力'
-          this.peiZhi3 = '检验报告及时性'
-          this.peiZhi4 = '检验结果准确率'
-          this.peiZhi5 = '工作规范性'
+        if (!data.length) {
+          return
         }
+        const { configId, configData } = data[0]
+        // this.configId = configId
+        this.peizhi = configData.split('@#@').map(item => {
+          return { name: item, val:6 }
+        })
+        console.log(this.peizhi, 'sdaesiuodhiudhqwiudhqwi')
+
+        // if (data.length > 0) {
+        //   this.peiZhi1 = data[0].pei_zhi_1_
+        //   this.peiZhi2 = data[0].pei_zhi_2_
+        //   this.peiZhi3 = data[0].pei_zhi_3_
+        //   this.peiZhi4 = data[0].pei_zhi_4_
+        //   this.peiZhi5 = data[0].pei_zhi_5_
+        // } else {
+        //   this.peiZhi1 = '服务态度'
+        //   this.peiZhi2 = '检验服务能力'
+        //   this.peiZhi3 = '检验报告及时性'
+        //   this.peiZhi4 = '检验结果准确率'
+        //   this.peiZhi5 = '工作规范性'
+        // }
       })
     },
     // 获取上传状态

+ 57 - 3
src/views/platform/message/inner/receive.vue

@@ -6,7 +6,14 @@
         @click-left="$router.push({ name: 'dashboard' })"
       />
       <van-tabs v-show="tabDatas.length>1" v-model="tabActive" color="#3396FB" line-width="40" class="ibps-border-bm" @click="onClickTab">
-        <van-tab v-for="data in tabDatas" :key="data.name" :name="data.name" :title="data.title" />
+        <van-tab v-for="data in tabDatas" :key="data.name" :name="data.name" :title="data.title" >
+          <template #title>
+              <div class="badge">
+                {{data.title}}
+                <div class="icon">{{ data.val }}</div>
+              </div>
+          </template>
+        </van-tab>
       </van-tabs>
       <van-search
         v-model="subject"
@@ -146,17 +153,44 @@ export default {
       getMyMsgListAll(this.getSearcFormData()).then(response => {
         // 处理数据
         ActionUtils.handleListData(this, response.data)
+        const index = this.tabDatas.findIndex(i=>i.name==this.tabActive)
+        let a = this.tabDatas[index]
+        a['val'] = response.data.pageResult.totalCount
+        this.$set(this.tabDatas,index,a)
       }).catch((e) => {
         ActionUtils.handleErrorData(this, e)
       })
+      this.totalCount()
+    },
+    totalCount(){
+        let mid = []
+        this.tabDatas.forEach((e,i)=>{
+          if(e.name!=this.tabActive){
+            mid.push({name:e.name,index:i})
+          }
+        })
+        mid.forEach((e,i)=>{
+          getMyMsgListAll(this.getSearcFormData(e.name))
+            .then(response => {
+              // this.tabDatas[e.index]['val']=response.data.pageResult.totalCount
+              let a = this.tabDatas[e.index]
+              a['val'] = response.data.pageResult.totalCount
+              this.$set(this.tabDatas,e.index,a)
+            })
+            .catch(e => {
+              let a = this.tabDatas[e.index]
+              a['val'] = 0
+              this.$set(this.tabDatas,e.index,a)
+            })
+        })
     },
     /**
      * 获取格式化参数
      */
-    getSearcFormData() {
+    getSearcFormData(t) {
       let params = {}
 
-      params['Q^isRead^SN'] = this.tabActive
+      params['Q^isRead^SN'] =t?t: this.tabActive
       if (this.$utils.isNotEmpty(this.subject)) {
         params['Q^subject^SL'] = this.subject
       }
@@ -227,3 +261,23 @@ export default {
 
 }
 </script>
+<style lang="scss" scoped>
+.badge{
+  display: flex;
+  align-items:center;
+  .icon{
+    border-radius: 10px;
+    color: #FFF;
+    display: inline-block;
+    font-size: 10px;
+    height: 14px;
+    line-height: 14px;
+    padding: 0 4px;
+    text-align: center;
+    white-space: nowrap;
+    border: 1px solid #FFF;
+    background-color: #F56C6C;
+  }
+}
+</style>
+

+ 56 - 3
src/views/platform/notice/index.vue

@@ -21,7 +21,14 @@
           :key="data.name"
           :name="data.name"
           :title="data.title"
-        />
+        >
+          <template #title>
+              <div class="badge">
+                {{data.title}}
+                <div class="icon">{{ data.val }}</div>
+              </div>
+          </template>
+        </van-tab>
       </van-tabs>
       <van-search
         v-model="title"
@@ -194,18 +201,45 @@ export default {
         .then(response => {
           // 处理数据
           ActionUtils.handleListData(this, response.data)
+          const index = this.tabDatas.findIndex(i=>i.name==this.tabActive)
+          let a = this.tabDatas[index]
+          a['val'] = response.data.pageResult.totalCount
+          this.$set(this.tabDatas,index,a)
         })
         .catch(e => {
           ActionUtils.handleErrorData(this, e)
         })
+        this.totalCount()
+    },
+    totalCount(){
+        let mid = []
+        this.tabDatas.forEach((e,i)=>{
+          if(e.name!=this.tabActive){
+            mid.push({name:e.name,index:i})
+          }
+        })
+        mid.forEach((e,i)=>{
+          queryPageList(this.getSearcFormData(e.name))
+            .then(response => {
+              // this.tabDatas[e.index]['val']=response.data.pageResult.totalCount
+              let a = this.tabDatas[e.index]
+              a['val'] = response.data.pageResult.totalCount
+              this.$set(this.tabDatas,e.index,a)
+            })
+            .catch(e => {
+              let a = this.tabDatas[e.index]
+              a['val'] = 0
+              this.$set(this.tabDatas,e.index,a)
+            })
+        })
     },
     /**
      * 获取格式化参数
      */
-    getSearcFormData() {
+    getSearcFormData(t) {
       let params = {}
       const { first = '', second = '' } = this.$store.getters.level || {}
-      params['Q^STATUS_^S'] = this.tabActive
+      params['Q^STATUS_^S'] = t ? t: this.tabActive
 
       params['Q^type_^SL'] = second || first
 
@@ -277,3 +311,22 @@ export default {
   }
 }
 </script>
+<style lang="scss" scoped>
+.badge{
+  display: flex;
+  align-items:center;
+  .icon{
+    border-radius: 10px;
+    color: #FFF;
+    display: inline-block;
+    font-size: 10px;
+    height: 14px;
+    line-height: 14px;
+    padding: 0 4px;
+    text-align: center;
+    white-space: nowrap;
+    border: 1px solid #FFF;
+    background-color: #F56C6C;
+  }
+}
+</style>