lijunjie лет назад: 2
Родитель
Сommit
4aafdf58f7

BIN
CallCenterWeb.UI/RMYY/1130五院.zip


BIN
CallCenterWeb.UI/RMYY/12.4 五院PC.zip


+ 8 - 0
CallCenterWeb.UI/RMYY/src/api/performance/performance.js

@@ -51,6 +51,14 @@ export function GetBBNumberExpt(params) {
51 51
     params
52 52
   })
53 53
 }
54
+// 标本登记修改数据
55
+export function SetCellData(params) {
56
+  return request({
57
+    url: 'KPI/EditBBNumber',
58
+    method: 'post',
59
+    params
60
+  })
61
+}
54 62
 // 标本登记添加修改
55 63
 export function AddBBNumber(params) {
56 64
   return request({

+ 5 - 3
CallCenterWeb.UI/RMYY/src/views/performance/cpns/js/reportListCommon.js

@@ -21,15 +21,15 @@ export default {
21 21
           2: 9
22 22
         },
23 23
         3: {
24
-          1: 12,
25
-          2: 13
24
+          1: 13,
25
+          2: 11
26 26
         }
27 27
       },
28 28
       spanArr: []
29 29
     }
30 30
   },
31 31
   computed: {},
32
-  mounted() {},
32
+  mounted() { },
33 33
   methods: {
34 34
     cellClickHandle(row, column, cell, event) {
35 35
       // console.log(row, column, cell, event)
@@ -91,6 +91,8 @@ export default {
91 91
       })
92 92
     },
93 93
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
94
+      console.log(this.listType, columnIndex)
95
+
94 96
       if (columnIndex === this.columnMergeData[this.params.label][this.listType]) {
95 97
         const _row = this.spanArr[rowIndex]
96 98
         const _col = _row > 0 ? 1 : 0

+ 9 - 2
CallCenterWeb.UI/RMYY/src/views/performance/cpns/reportDispatchIndex.vue

@@ -18,6 +18,7 @@
18 18
           {{ scope.row.F_UserName }}({{ scope.row.F_UserCode }})
19 19
         </template>
20 20
       </el-table-column>
21
+
21 22
       <el-table-column :prop="listType ==='1' ?'F_Title':'F_TitleAmount'" label="职称" align="center" min-width >
22 23
         <template slot-scope="scope">
23 24
           <template v-if="listType ==='1'">
@@ -39,13 +40,16 @@
39 40
             {{ scope.row.F_TitleAmount }}
40 41
           </template>
41 42
         </template>
42
-
43 43
       </el-table-column>
44
-      <el-table-column label="班次" align="center" min-width>
44
+
45
+      <el-table-column v-if="listType === '1'" :key="Math.random()*10000" label="班次" align="center" min-width>
45 46
         <el-table-column :prop="listType ==='1' ?'F_ClassLBCount':'F_ClassLBAmount'" label="连班" align="center" min-width/>
46 47
         <el-table-column :prop="listType ==='1' ?'F_ClassYBCount':'F_ClassYBAmount'" label="夜班" align="center" min-width/>
47 48
         <el-table-column :prop="listType ==='1' ?'F_ClassXYCount':'F_ClassXYAmount'" label="行政" align="center" min-width/>
48 49
       </el-table-column>
50
+
51
+      <el-table-column v-else :key="Math.random()*10000" prop="F_BCTotalAmount" label="班次" align="center" min-width />
52
+
49 53
       <el-table-column label="调度量" align="center" min-width>
50 54
         <el-table-column :prop="listType ==='1' ?'F_ZyCount':'F_ZyAmount'" label="总院" align="center" min-width >
51 55
           <template slot-scope="scope">
@@ -64,8 +68,11 @@
64 68
           </template>
65 69
         </el-table-column>
66 70
       </el-table-column>
71
+
67 72
       <el-table-column :prop="listType ==='1' ?'F_CallCount':'F_CallAmount'" label="电话量" align="center" min-width />
73
+
68 74
       <el-table-column v-if="listType ==='2'" prop="F_IndividualAmount" label="个人合计金额" align="center" min-width />
75
+
69 76
       <el-table-column prop="F_Amount" label="录入总金额" align="center" min-width >
70 77
         <template slot-scope="scope">
71 78
           <template v-if="listType ==='1'">

+ 9 - 4
CallCenterWeb.UI/RMYY/src/views/performance/cpns/reportSpecimen.vue

@@ -17,6 +17,7 @@
17 17
           {{ scope.row.F_UserName }}({{ scope.row.F_UserCode }})
18 18
         </template>
19 19
       </el-table-column>
20
+
20 21
       <el-table-column :prop="listType ==='1' ?'F_Title':'F_TitleAmount'" label="职称" align="center" min-width >
21 22
         <template slot-scope="scope" inline-template>
22 23
           <template v-if="listType ==='1'">
@@ -32,14 +33,15 @@
32 33
             {{ scope.row.F_TitleAmount }}
33 34
           </template>
34 35
         </template>
35
-
36 36
       </el-table-column>
37
-      <el-table-column label="班次" align="center" min-width>
37
+
38
+      <el-table-column v-if="listType ==='1'" :key="Math.random()*10000" label="班次" align="center" min-width>
38 39
         <el-table-column :prop="listType ==='1' ?'F_ClassLBCount':'F_ClassLBAmount'" label="连班" align="center" min-width/>
39 40
         <el-table-column :prop="listType ==='1' ?'F_ClassYBCount':'F_ClassYBAmount'" label="夜班" align="center" min-width/>
40 41
         <el-table-column :prop="listType ==='1' ?'F_ClassXZCount':'F_ClassXZAmount'" label="行政" align="center" min-width/>
41 42
         <el-table-column :prop="listType ==='1' ?'F_ClassXXCount':'F_ClassXXAmount'" label="行休" align="center" min-width/>
42 43
       </el-table-column>
44
+      <el-table-column v-else :key="Math.random()*10000" prop="F_BCTotalAmount" label="班次" align="center" min-width/>
43 45
 
44 46
       <el-table-column label="接单量" align="center" min-width>
45 47
 
@@ -90,8 +92,11 @@
90 92
 
91 93
       </el-table-column>
92 94
 
93
-      <el-table-column :prop="listType ==='1' ?'F_BBCount':'F_BBAmount'" label="标本总量" align="center" min-width />
94
-      <el-table-column v-if="listType ==='2'" prop="F_IndividualAmount" label="个人合计金额" align="center" min-width />
95
+      <el-table-column prop="F_OtherBBAmount" label="其它标本" align="center" min-width />
96
+      <el-table-column prop="F_OtherBBCount" label="体检标本" align="center" min-width />
97
+      <!-- <el-table-column v-if="listType ==='2'" :key="Math.random()*10000" :prop="listType ==='1' ?'F_BBCount':'F_BBAmount'" label="标本总量" align="center" min-width /> -->
98
+
99
+      <el-table-column v-if="listType ==='2'" :key="Math.random()*10000" prop="F_IndividualAmount" label="个人合计金额" align="center" min-width />
95 100
       <el-table-column prop="F_Amount" label="录入总金额" align="center" min-width >
96 101
         <template slot-scope="scope">
97 102
           <template v-if="listType ==='1'">

+ 145 - 11
CallCenterWeb.UI/RMYY/src/views/performance/cpns/reportSpecimenRegister.vue

@@ -1,8 +1,8 @@
1 1
 <template>
2 2
   <div>
3 3
     <el-row :gutter="20" />
4
-    <el-table :data="dataLists" border>
5
-      <el-table-column label="员工姓名" align="center">
4
+    <el-table :data="dataLists" :cell-class-name="tableCellClassName" border @cell-click="tableCellFn">
5
+      <el-table-column label="员工姓名" align="center" width="170px">
6 6
         <template slot-scope="scope">
7 7
           <div>
8 8
             <span>{{ scope.row.username }}</span>
@@ -10,22 +10,60 @@
10 10
           </div>
11 11
         </template>
12 12
       </el-table-column>
13
+
13 14
       <el-table-column
14 15
         v-for="(item, index) in dataHeader"
15 16
         :key="index"
16 17
         :label="item"
17 18
         align="center"
18 19
       >
19
-        <template slot-scope="scope">
20
-          <template v-for="itemChlid in scope.row.datenum">
21
-            <template v-if="item === itemChlid.datetime.split(' ')[0].split('-')[2]">{{ itemChlid.num }}</template>
20
+        <el-table-column label="其它标本" align="center" width="100px">
21
+          <template slot-scope="scope">
22
+            <template v-for="itemChlid in scope.row.datenum">
23
+              <div v-if="item === itemChlid.datetime.split(' ')[0].split('-')[2]" :key="tableKey">
24
+                <a v-if="cellShowData[`${scope.row.index}_${scope.column.index}`] !== true" >{{ itemChlid.othernum }}</a>
25
+                <el-input
26
+                  v-else
27
+                  :min="0"
28
+                  v-model="itemChlid.othernum"
29
+                  type="number"
30
+                  @blur="setDatas(scope.row , item , itemChlid.othernum , `${scope.row.index}_${scope.column.index}` , itemChlid , '其它标本')"
31
+                />
32
+              </div>
33
+            </template>
22 34
           </template>
23
-        </template>
35
+        </el-table-column>
36
+
37
+        <el-table-column label="体检标本" align="center" width="100px">
38
+          <template slot-scope="scope">
39
+            <template v-for="itemChlid in scope.row.datenum">
40
+              <div v-if="item === itemChlid.datetime.split(' ')[0].split('-')[2]" :key="tableKey">
41
+                <a v-if="cellShowData[`${scope.row.index}_${scope.column.index}`] !== true" >{{ itemChlid.num }}</a>
42
+                <el-input
43
+                  v-else
44
+                  :min="0"
45
+                  v-model="itemChlid.num"
46
+                  type="number"
47
+                  @blur="setDatas(scope.row , item , itemChlid.num , `${scope.row.index}_${scope.column.index}` , itemChlid , '体检标本')"
48
+                />
49
+              </div>
50
+            </template>
51
+          </template>
52
+        </el-table-column>
24 53
       </el-table-column>
54
+
25 55
       <el-table-column label="合计" align="center">
26
-        <template slot-scope="scope">
27
-          <div>{{ scope.row.total }}</div>
28
-        </template>
56
+        <el-table-column label="其它标本" align="center" width="100px">
57
+          <template slot-scope="scope">
58
+            <div>{{ scope.row.othertotal }}</div>
59
+          </template>
60
+        </el-table-column>
61
+        <el-table-column label="体检标本" align="center" width="100px">
62
+          <template slot-scope="scope">
63
+            <div>{{ scope.row.total }}</div>
64
+          </template>
65
+        </el-table-column>
66
+
29 67
       </el-table-column>
30 68
     </el-table>
31 69
 
@@ -41,7 +79,9 @@ export default {
41 79
       LoadingFlag: false,
42 80
       params: {},
43 81
       dataLists: [],
44
-      dataHeader: []
82
+      dataHeader: [],
83
+      tableKey: 0,
84
+      cellShowData: {}
45 85
     }
46 86
   },
47 87
   computed: {},
@@ -61,9 +101,103 @@ export default {
61 101
         })
62 102
         resolve()
63 103
       })
104
+    },
105
+    tableCellFn(row, column) {
106
+      if (this.tableCellFn._show === 1 || row.username === '日合计') {
107
+        return
108
+      }
109
+
110
+	  let dayNub = new Date(row.datenum[Math.ceil(column.index / 2) - 1].datetime).getDate()
111
+	  dayNub = dayNub < 10 ? `0${dayNub}` : dayNub
112
+
113
+      // 权限判断
114
+      const userCode = localStorage.getItem('roleCode')
115
+      if (userCode !== 'GLY') {
116
+        const oldDate = this.params.sdate.split('-')
117
+        const oldDateStr = `${oldDate[0]}-${oldDate[1]}-${dayNub}`
118
+        const newDate = new Date()
119
+        const newDateStr = `${newDate.getFullYear()}-${newDate.getMonth() + 1 < 10 ? `0${newDate.getMonth() + 1}` : newDate.getMonth() + 1}-${newDate.getDate() < 10 ? `0${newDate.getDate()}` : newDate.getDate()}`
120
+
121
+        const findData = row.datenum.find(val => val.datetime.indexOf(oldDateStr) !== -1)
122
+
123
+        // console.table(findData)
124
+        // console.log(oldDateStr)
125
+        // console.log(newDateStr)
126
+
127
+        if (column.label === '其它标本') {
128
+          if (findData.othernum !== 0) {
129
+            return
130
+          }
131
+        } else {
132
+          if (findData.num !== 0) {
133
+            return
134
+          }
135
+        }
136
+
137
+        if (oldDateStr !== newDateStr) {
138
+          return
139
+        }
140
+      }
141
+
142
+      const linData = this.cellShowData[`${row.index}_${column.index}`]
143
+
144
+      // 互斥
145
+      for (const key in this.cellShowData) {
146
+        this.cellShowData[key] = false
147
+      }
148
+      this.cellShowData[`${row.index}_${column.index}`] = true
149
+
150
+      // 防止重复刷新
151
+      if (!linData) {
152
+        this.tableKey++
153
+      }
154
+    },
155
+    tableCellClassName({ row, column, rowIndex, columnIndex }) { // 注意这里是解构
156
+      // 利用单元格的 className 的回调方法,给行列索引赋值
157
+      row.index = rowIndex
158
+      column.index = columnIndex
159
+    },
160
+    setDatas(rowData, columnData, data, inp, row, type) {
161
+      if (data <= 0) {
162
+        if (type === '其它标本') {
163
+          row.othernum = 0
164
+        } else {
165
+          row.num = 0
166
+        }
167
+
168
+        data = 0
169
+      }
170
+
171
+      this.cellShowData[inp] = false
172
+      this.tableKey++
173
+
174
+      this.tableCellFn._show = 1
175
+      setTimeout(() => {
176
+        this.tableCellFn._show = 2
177
+      }, 170)
178
+
179
+	  const resData = {
180
+        usercode: rowData.usercode,
181
+        username: rowData.username,
182
+        sdate: columnData
183
+	  }
184
+
185
+	  if (type === '其它标本') {
186
+        resData['OtherNumber'] = data
187
+	  } else {
188
+        resData['number'] = data
189
+	  }
190
+
191
+      this.$emit('setDatas', resData)
64 192
     }
65 193
   }
66 194
 }
67 195
 </script>
68 196
 
69
-<style scoped></style>
197
+<style scoped lang="scss">
198
+	/deep/ .el-table__row{
199
+		.el-table__cell:nth-child(n+2):nth-child(4n) , .el-table__cell:nth-child(n+2):nth-child(4n) + *{
200
+			background-color: #f3f3f3;
201
+		}
202
+	}
203
+</style>

+ 20 - 1
CallCenterWeb.UI/RMYY/src/views/performance/cpns/workOrderListModal.vue

@@ -66,7 +66,11 @@
66 66
           <span v-if="scope.row.F_Type == 4000">车辆调度</span>
67 67
         </template>
68 68
       </el-table-column>
69
-      <el-table-column prop="F_SonType" label="工单类别" align="center" />
69
+      <el-table-column
70
+        :formatter="formtOrder"
71
+        prop="F_SonType"
72
+        label="工单类别"
73
+        align="center" />
70 74
       <el-table-column prop="F_Content" label="工单内容" align="center" min-width="150" />
71 75
       <el-table-column prop="F_CreateTime" label="创建时间" align="center" min-width="150" />
72 76
     </el-table>
@@ -173,6 +177,21 @@ export default {
173 177
           title: '工单详情'
174 178
         })
175 179
       }
180
+    },
181
+    formtOrder(row, column) {
182
+      if (row.F_SonType) {
183
+        if (this.$store.getters.workTypeMap[parseInt(row.F_SonType)]) {
184
+          const typeText = this.$store.getters.workTypeMap[
185
+            parseInt(row.F_SonType)
186
+          ].text
187
+          return typeText
188
+            .split('/')
189
+            .slice(1)
190
+            .join('/')
191
+        } else {
192
+          return ''
193
+        }
194
+      }
176 195
     }
177 196
   }
178 197
 }

+ 12 - 3
CallCenterWeb.UI/RMYY/src/views/performance/specimenRegister/index.vue

@@ -18,12 +18,12 @@
18 18
           @click="btn_export">导出</el-button>
19 19
       </el-form-item>
20 20
     </el-form>
21
-    <report-specimen-register ref="reportSpecimenRegister"/>
21
+    <report-specimen-register ref="reportSpecimenRegister" @setDatas="setDatas" />
22 22
   </div>
23 23
 </template>
24 24
 <script>
25 25
 import reportSpecimenRegister from '../cpns/reportSpecimenRegister'
26
-import { GetBBNumberExpt, AddBBNumber } from '@/api/performance/performance'
26
+import { GetBBNumberExpt, AddBBNumber, SetCellData } from '@/api/performance/performance'
27 27
 import { exportExcel } from '@/utils'
28 28
 
29 29
 export default {
@@ -52,7 +52,7 @@ export default {
52 52
         inputPattern: /^[0-9]*$/,
53 53
         inputErrorMessage: '数据格式不正确'
54 54
       }).then(({ value }) => {
55
-        AddBBNumber({ number: value }).then(response => {
55
+        AddBBNumber({ number: value, othernum: value }).then(response => {
56 56
           if (response.state.toLowerCase() === 'success') {
57 57
             this.$refs.reportSpecimenRegister.getList(this.ruleForm)
58 58
           }
@@ -75,6 +75,15 @@ export default {
75 75
       this.ruleForm.sdate = this.dataValue + '-01'
76 76
       this.ruleForm.isexport = 1
77 77
       exportExcel(this.ruleForm, GetBBNumberExpt)
78
+    },
79
+    // 设置数据
80
+    setDatas(data) {
81
+      SetCellData({
82
+        ...data,
83
+        sdate: `${this.dataValue}-${data.sdate}`
84
+      }).finally(() => {
85
+        this.$refs.reportSpecimenRegister.getList(this.ruleForm)
86
+      })
78 87
     }
79 88
   }
80 89
 }

+ 2 - 2
CallCenterWeb.UI/RMYY/src/views/systemSetup/roleSetting/userManage/addOrEdit.vue

@@ -40,7 +40,7 @@
40 40
           </el-select>
41 41
         </el-form-item>
42 42
         <el-form-item label="用户标签" prop="labelid">
43
-          <el-select v-model="ruleForm.labelid" placeholder="请选择用户标签">
43
+          <el-select v-model="ruleForm.labelid" placeholder="请选择用户标签" clearable >
44 44
             <el-option
45 45
               v-for="item in LabelOptions"
46 46
               :key="item.value"
@@ -428,7 +428,7 @@ export default {
428 428
           this.ruleForm.Usercode = res.F_UserCode // 工号
429 429
           this.ruleForm.Username = res.F_UserName // 姓名 Phon
430 430
           this.ruleForm.RoleId = res.F_RoleId // 角色
431
-          
431
+
432 432
           this.ruleForm.labelid = res.F_LabelID ? res.F_LabelID : '' // 角色
433 433
           if (res.F_RoleId == 0) {
434 434
             this.ruleForm.RoleId = ''

+ 1 - 1
CallCenterWeb.UI/RMYYAPP/manifest.json

@@ -2,7 +2,7 @@
2 2
     "name" : "郑州人民医院综合服务保障调度平台",
3 3
     "appid" : "__UNI__5A5207D",
4 4
     "description" : "",
5
-    "versionName" : "1.2.81",
5
+    "versionName" : "1.2.82",
6 6
     "versionCode" : 180,
7 7
     "transformPx" : false,
8 8
     /* 5+App特有相关 */