From 0311359d2b04fc7176509b00a383dce057443001 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期日, 08 十二月 2024 22:30:52 +0800 Subject: [PATCH] 导入合同规则 --- src/views/system/work-order/threshold/index.vue | 1522 +++++++++++++++++++++------------------------------------ 1 files changed, 563 insertions(+), 959 deletions(-) diff --git a/src/views/system/work-order/threshold/index.vue b/src/views/system/work-order/threshold/index.vue index 7053ad8..2f38eae 100644 --- a/src/views/system/work-order/threshold/index.vue +++ b/src/views/system/work-order/threshold/index.vue @@ -15,7 +15,7 @@ <!-- </el-row>--> <el-row> <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> - <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> + <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;"> <div style="display: flex; justify-content: space-between"> <div class="header鈥攖ext">瑙嗛</div> <div> @@ -24,12 +24,16 @@ type="text" icon="el-icon-edit" v-hasPermi="['ycl:threshold:edit']" - @click="a()" - v-if="!ifEdit" - >淇敼 + @click="showEdit('video')" + v-if="!ifEditVideo" + >淇敼 </el-button> - <el-button size="mini" type="primary" @click="a()" v-if="ifEdit" - >淇濆瓨 + <el-button + size="mini" + type="primary" + @click="saveEdit('video')" + v-if="ifEditVideo" + >淇濆瓨 </el-button> </div> </div> @@ -41,89 +45,35 @@ justify-content: space-between; " > + <div> <div style=" font-size: small; display: flex; flex-direction: row-reverse; - width: 172px; + width: 192px; " - >宸ュ崟闃堝��</div > + 宸ュ崟闃堝�� + </div> <div> - <el-form label-width="120px"> - <el-form-item label="妯$硦鍒嗗�硷細"> + <el-form label-width="140px"> + <el-form-item + v-for="(item, index) in thresholdList.video" + :label="item.name + '锛�'" + :key="item.id" + > <el-input - v-model="videoList.blur" + v-model="videoList[index].valueAuto" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditVideo" ></el-input> - <span v-else>{{ thresholdList[0].blur }}</span> - </el-form-item> - <el-form-item label="棰滆壊鍒嗗�硷細"> - <el-input - v-model="videoList.color" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].color }}</span> - </el-form-item> - <el-form-item label="浜害鍒嗗�硷細"> - <el-input - v-model="videoList.light" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].light }}</span> - </el-form-item> - <el-form-item label="閬尅鍒嗗�硷細"> - <el-input - v-model="videoList.shade" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].shade }}</span> - </el-form-item> - <el-form-item label="闆姳鍒嗗�硷細"> - <el-input - v-model="videoList.snow" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].snow }}</span> - </el-form-item> - <el-form-item label="鏉$汗鍒嗗�硷細"> - <el-input - v-model="videoList.stripe" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].stripe }}</span> - </el-form-item> - <el-form-item label="鏃犱俊鍙峰垎鍊硷細"> - <el-input - v-model="videoList.signal" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].signal }}</span> - </el-form-item> - <el-form-item label="鏍囨敞鏃堕棿宸�(绉�)锛�"> - <el-input - v-model="videoList.diffTime" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].diffTime }}</span> + <span v-else>{{ item.valueAuto }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> </el-form-item> </el-form> </div> @@ -131,78 +81,22 @@ <div> <span style="font-size: small">涓嬪彂闃堝��</span> <div> - <el-form ref="form" :model="thresholdList[0]"> - <el-form-item label=""> + <el-form ref="form"> + <el-form-item + v-for="(item, index) in thresholdList.video" + label="" + :key="item.id" + > <el-input - v-model="videoList.blur" + v-model="videoList[index].value" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditVideo" ></el-input> - <span v-else>{{ thresholdList[0].blur }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.color" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].color }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.light" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].light }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.shade" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].shade }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.snow" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].snow }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.stripe" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].stripe }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.signal" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].signal }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="videoList.difftime" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[0].difftime }}</span> + <span v-else>{{ item.value }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> </el-form-item> </el-form> </div> @@ -211,7 +105,7 @@ </el-card> </el-col> <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> - <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> + <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;"> <div style="display: flex; justify-content: space-between"> <div class="header鈥攖ext">浜鸿劯</div> <div> @@ -220,12 +114,16 @@ type="text" icon="el-icon-edit" v-hasPermi="['ycl:threshold:edit']" - @click="a()" - v-if="!ifEdit" - >淇敼 + @click="showEdit('face')" + v-if="!ifEditFace" + >淇敼 </el-button> - <el-button size="mini" type="primary" @click="b()" v-if="ifEdit" - >淇濆瓨 + <el-button + size="mini" + type="primary" + @click="saveEdit('face')" + v-if="ifEditFace" + >淇濆瓨 </el-button> </div> </div> @@ -245,140 +143,60 @@ flex-direction: row-reverse; width: 190px; " - >宸ュ崟闃堝��</div > + 宸ュ崟闃堝�� + </div> <div> <el-form label-width="140px"> - <el-form-item label="鏃堕挓鍑嗙‘鐜囷細"> - <el-input - v-model="faceList.clockPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[1].clockPercent }}</span> - </el-form-item> - <el-form-item label="鏁版嵁鍙婃椂鐜囷細"> - <el-input - v-model="faceList.timelyPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[1].timelyPercent }}</span> - </el-form-item> - <el-form-item label="涓嶅敮涓�鏁版嵁閲忥細"> - <el-input - v-model="faceList.nouniqueCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[1].nouniqueCount }}</span> - </el-form-item> - <el-form-item label="寤烘ā澶辫触鐜囷細"> - <el-input - v-model="faceList.failPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ thresholdList[1].failPercent }}</span> - </el-form-item> - <el-form-item label="骞冲潎浜鸿劯浣庤瘎鍒嗙巼锛�"> - <el-input - v-model="faceList.lowScorePercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ - thresholdList[1].lowScorePercent - }}</span></el-form-item + <el-form-item + v-for="(item, index) in thresholdList.face" + :label="item.name + '锛�'" + :key="item.id" > - <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細"> <el-input - v-model="thresholdList[0].continueNoDataCount" + v-model="faceList[index].valueAuto" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditFace" ></el-input> - <span v-else>{{ 10 }}</span></el-form-item - > + <span v-else>{{ item.valueAuto }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> + </el-form-item> </el-form> </div> </div> <div> <span style="font-size: small">涓嬪彂闃堝��</span> <div> - <el-form - ref="form" - :model="thresholdList[0]" - > - <el-form-item label=""> - <el-input - v-model="thresholdList[1].clockPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ - thresholdList[1].clockPercent - }}</span></el-form-item + <el-form ref="form"> + <el-form-item + v-for="(item, index) in thresholdList.face" + label="" + :key="item.id" > - <el-form-item label=""> <el-input - v-model="thresholdList[0].timelyPercent" + v-model="faceList[index].value" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditFace" ></el-input> - <span v-else>{{ 10 }}</span></el-form-item - > - <el-form-item label=""> - <el-input - v-model="thresholdList[0].nouniqueCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span></el-form-item - > - <el-form-item label=""> - <el-input - v-model="thresholdList[0].failPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span></el-form-item - > - <el-form-item label=""> - <el-input - v-model="thresholdList[0].lowScorePercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span></el-form-item - > - <el-form-item label=""> - <el-input - v-model="thresholdList[0].continueNoDataCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span></el-form-item + <span v-else>{{ item.value }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> + </el-form-item > </el-form> </div> </div> </div> - </el-card></el-col + </el-card> + </el-col > <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> - <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> + <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;"> <div style="display: flex; justify-content: space-between"> <div class="header鈥攖ext">杞﹁締</div> <div> @@ -387,12 +205,16 @@ type="text" icon="el-icon-edit" v-hasPermi="['ycl:threshold:edit']" - @click="a()" - v-if="!ifEdit" - >淇敼 + @click="showEdit('car')" + v-if="!ifEditCar" + >淇敼 </el-button> - <el-button size="mini" type="primary" @click="a()" v-if="ifEdit" - >淇濆瓨 + <el-button + size="mini" + type="primary" + @click="saveEdit('car')" + v-if="ifEditCar" + >淇濆瓨 </el-button> </div> </div> @@ -410,69 +232,28 @@ font-size: small; display: flex; flex-direction: row-reverse; - width: 232px; + width: 206px; " - >宸ュ崟闃堝��</div > + 宸ュ崟闃堝�� + </div> <div> - <el-form - ref="form" - :model="thresholdList[0]" - label-width="180px" - > - <el-form-item label="鏃堕挓鍑嗙‘鐜囷細"> + <el-form ref="form" label-width="160px"> + <el-form-item + v-for="(item, index) in thresholdList.car" + :label="item.name + '锛�'" + :key="item.id" + > <el-input - v-model="thresholdList[0].clockPercent" + v-model="carList[index].valueAuto" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditCar" ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label="鏁版嵁鍙婃椂鐜囷細"> - <el-input - v-model="thresholdList[0].timelyPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label="涓嶅敮涓�鏁版嵁閲忥細"> - <el-input - v-model="thresholdList[0].nouniqueCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label="杞︾墝鏈瘑鍒噺锛�"> - <el-input - v-model="thresholdList[0].dayNoNumberCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label="杞﹁締鍏」灞炴�т笉瀹屾暣閲忥細"> - <el-input - v-model="thresholdList[0].noIntegrityCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label="鎸佺画鏃犳暟鎹ぉ鏁帮細"> - <el-input - v-model="thresholdList[0].continueNoDataCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> + <span v-else>{{ item.valueAuto }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> </el-form-item> </el-form> </div> @@ -480,624 +261,216 @@ <div> <span style="font-size: small">涓嬪彂闃堝��</span> <div> - <el-form - ref="form" - :model="thresholdList[0]" - > - <el-form-item label=""> + <el-form ref="form"> + <el-form-item + v-for="(item, index) in thresholdList.car" + label="" + :key="item.id" + > <el-input - v-model="thresholdList[0].clockPercent" + v-model="carList[index].value" size="mini" style="width: 100px" - v-if="ifEdit" + :type="item.countType=='int'?'number':''" + v-if="ifEditCar" ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="thresholdList[0].timelyPercent" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="thresholdList[0].nouniqueCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="thresholdList[0].dayNoNumberCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="thresholdList[0].noIntegrityCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> - </el-form-item> - <el-form-item label=""> - <el-input - v-model="thresholdList[0].continueNoDataCount" - size="mini" - style="width: 100px" - v-if="ifEdit" - ></el-input> - <span v-else>{{ 10 }}</span> + <span v-else>{{ item.value }}</span> + <span class="unit" v-if="item.countType=='percent'">%</span> + <span class="unit" v-if="item.countType=='second'">绉�</span> </el-form-item> </el-form> </div> </div> </div> - </el-card></el-col + </el-card> + </el-col > </el-row> - <!-- <el-table - v-loading="loading" - :data="thresholdList" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="璁惧绫诲瀷" align="center" prop="monitorType"> - <template slot-scope="scope"> - <span v-show="scope.row['monitorType'] === 'face'">浜鸿劯</span> - <span v-show="scope.row['monitorType'] === 'car'">杞﹁締</span> - <span v-show="scope.row['monitorType'] === 'video'">瑙嗛</span> - </template> - </el-table-column> - <el-table-column label="宸ュ崟闃堝��" align="center"> - <template slot-scope="scope"> - <template v-if="scope.row.monitorType === 'face'"> - <div class="table-row"> - <div class="table-row-item">鎶撴媿閲�</div> - <div class="table-row-item">{{ scope.row.captureNum }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鍙婃椂鐜�</div> - <div class="table-row-item">{{ scope.row.timelyRate }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">寤惰繜閲�</div> - <div class="table-row-item">{{ scope.row.delayAmount }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">璁惧娲昏穬鐜�</div> - <div class="table-row-item">{{ scope.row.deviceActiveRate }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div> - <div class="table-row-item">{{ scope.row.timelyCapture }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div> - <div class="table-row-item">{{ scope.row.timeAccuracy }}</div> - </div> - </template> - <template v-else-if="scope.row.monitorType === 'car'"> - <div class="table-row"> - <div class="table-row-item">杩囪溅鏁版嵁閲�</div> - <div class="table-row-item">{{ scope.row.passCarNum }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">杩囪溅缂哄け鐜�</div> - <div class="table-row-item">{{ scope.row.passCarMissRate }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鏈夋晥杩囪溅鏁版嵁閲�</div> - <div class="table-row-item"> - {{ scope.row.passCarEffectiveNum }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">璁惧娲昏穬鐜�</div> - <div class="table-row-item">{{ scope.row.deviceActiveRate }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div> - <div class="table-row-item">{{ scope.row.timelyCapture }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div> - <div class="table-row-item">{{ scope.row.timeAccuracy }}</div> - </div> - </template> - <template v-else-if="scope.row.monitorType === 'video'"> - <div class="table-row" style="display: flex; flex-direction: row"> - <div class="table-row-item">鍥惧儚璐ㄩ噺</div> - <div class="table-row-item">{{ scope.row.imageQuality }}</div> - </div> - <div class="table-row" style="display: flex; flex-direction: row"> - <div class="table-row-item">瑙嗛璐ㄩ噺</div> - <div class="table-row-item">{{ scope.row.videoQuality }}</div> - </div> - <div class="table-row" style="display: flex; flex-direction: row"> - <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div> - <div class="table-row-item"> - {{ scope.row.annotationAccuracy }} - </div> - </div> - </template> - </template> - </el-table-column> - <el-table-column label="涓嬪彂闃堝��" align="center"> - <template slot-scope="scope"> - <template v-if="scope.row.monitorType === 'face'"> - <div class="table-row"> - <div class="table-row-item">鎶撴媿閲�</div> - <div class="table-row-item">{{ scope.row.captureNumAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鍙婃椂鐜�</div> - <div class="table-row-item">{{ scope.row.timelyRateAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">寤惰繜閲�</div> - <div class="table-row-item">{{ scope.row.delayAmountAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">璁惧娲昏穬鐜�</div> - <div class="table-row-item"> - {{ scope.row.deviceActiveRateAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div> - <div class="table-row-item"> - {{ scope.row.timelyCaptureAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div> - <div class="table-row-item">{{ scope.row.timeAccuracyAuto }}</div> - </div> - </template> - <template v-else-if="scope.row.monitorType === 'car'"> - <div class="table-row"> - <div class="table-row-item">杩囪溅鏁版嵁閲�</div> - <div class="table-row-item">{{ scope.row.passCarNumAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">杩囪溅缂哄け鐜�</div> - <div class="table-row-item"> - {{ scope.row.passCarMissRateAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">鏈夋晥杩囪溅鏁版嵁閲�</div> - <div class="table-row-item"> - {{ scope.row.passCarEffectiveNumAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">璁惧娲昏穬鐜�</div> - <div class="table-row-item"> - {{ scope.row.deviceActiveRateAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div> - <div class="table-row-item"> - {{ scope.row.timelyCaptureAuto }} - </div> - </div> - <div class="table-row"> - <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div> - <div class="table-row-item">{{ scope.row.timeAccuracyAuto }}</div> - </div> - </template> - <template v-else-if="scope.row.monitorType === 'video'"> - <div class="table-row"> - <div class="table-row-item">鍥惧儚璐ㄩ噺</div> - <div class="table-row-item">{{ scope.row.imageQualityAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">瑙嗛璐ㄩ噺</div> - <div class="table-row-item">{{ scope.row.videoQualityAuto }}</div> - </div> - <div class="table-row"> - <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div> - <div class="table-row-item"> - {{ scope.row.annotationAccuracyAuto }} - </div> - </div> - </template> - </template> - </el-table-column> - <el-table-column - label="鎿嶄綔" - align="center" - class-name="small-padding fixed-width" - > - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - v-hasPermi="['ycl:threshold:edit']" - @click="updateWho(scope.row)" - >淇敼 + <el-row class="content-warp"> + <div class="header鈥攖ext" style="margin-bottom: 5px">宸ュ崟鐧藉悕鍗�</div> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" @submit.native.prevent> + <el-form-item label="鍏抽敭瀛�" prop="keyword"> + <el-input + v-model="queryParams.keyword" + placeholder="璁惧缂栫爜/鐐逛綅鍚�" + clearable + @keyup.enter.native="getWhiteList" + @clear="getWhiteList" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="small" @click="getWhiteList">鎼滅储</el-button> + </el-form-item> + </el-form> + </el-row> + <el-row class="content-warp"> + <el-button size="small" type="success" @click="whiteOpen" plain>鏂板</el-button> + <el-button size="small" type="danger" @click="bathDelete" plain>鍒犻櫎</el-button> + <el-button type="primary" plain icon="el-icon-top" v-loading="download" size="mini" @click="handleExport" + >瀵煎嚭鐧藉悕鍗� + </el-button> + <el-popover style="margin-left: 10px" placement="bottom" trigger="hover" content="瀵煎叆鐧藉悕鍗�"> + <div class="bottom_"> + <el-upload + ref="upload" + class="upload-demo" + drag + :action="importUrl" + :file-list="fileList" + :before-upload="beforeUpload" + > + <i class="el-icon-upload"></i> + <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + <div class="el-upload__tip" slot="tip">鍙兘涓婁紶xls/xlsx鏂囦欢</div> + </el-upload> + </div> + <div> + <el-button class="bottom_" type="primary" size="small" v-loading="upload" @click="handleImport" + >瀵煎叆 </el-button> - </template> - </el-table-column> - </el-table> --> + </div> + <el-button type="primary" size="small" plain icon="el-icon-bottom" slot="reference">瀵煎叆鐧藉悕鍗�</el-button> + </el-popover> - <!-- <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> --> + <el-popover style="margin-left: 10px" placement="bottom" content="娣诲姞鏁呴殰绫诲瀷"> + <div class="bottom_"> + <el-form ref = "addErrorForm" :model="addErrorForm" v-loading="addErrorLoading" rules="addErrorFormRules" :inline="true" > + <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList"> + <el-select v-model="addErrorForm.errorTypeList" multiple> + <el-option v-for="dict in dict.type.error_type" + :value="dict.value" + :key="dict.value" + :label="dict.label"/> + </el-select> + </el-form-item> + </el-form> + </div> + <div> + <el-button class="bottom_" type="primary" size="small" @click="addError" plain>纭</el-button> + </div> + <el-button style="margin-left: 10px" size="small" type="primary" slot="reference" plain>娣诲姞鏁呴殰绫诲瀷</el-button> + </el-popover> - <!-- 浜鸿劯闃堝�� --> + </el-row> + + <el-row class="content-warp"> + <el-col :span="24"> + <el-table v-loading="loading" :data="workOrderWhiteList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" prop="id"/> + <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber"/> + <el-table-column label="鐐逛綅鍚嶇О" align="center" prop="pointName"/> + <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType"/> + <el-table-column label="澶囨敞" align="center" prop="remark"/> + <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button size="mini" type="text" icon="el-icon-edit" @click="handleWhiteUpdate(scope.row)" + >淇敼 + </el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :auto-scroll="false" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getWhiteList" + /> + </el-col> + </el-row> + + <!-- 鏂板鐧藉悕鍗�--> <el-dialog - title="淇敼浜鸿劯宸ュ崟闃堝��" - :visible.sync="faceOpen" - width="700px" - append-to-body - > - <el-form - ref="faceForm" - :model="faceForm" - label-width="150px" - :inline="true" - > - <el-form-item class="fixedWidth" label="鎶撴媿閲�" prop="captureNum"> - <el-input - clearable - size="small" - v-model="faceForm.captureNum" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.captureNumAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item class="fixedWidth" label="杩囪溅缂哄け鐜�" prop="timelyRate"> - <el-input - clearable - size="small" - v-model="faceForm.timelyRate" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.timelyRateAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item class="fixedWidth" label="寤惰繜閲�" prop="delayAmount"> - <el-input - clearable - size="small" - v-model="faceForm.delayAmount" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.delayAmountAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="璁惧娲昏穬鐜�" - prop="deviceActiveRate" - > - <el-input - clearable - size="small" - v-model="faceForm.deviceActiveRate" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.deviceActiveRateAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="鎶撴媿鍙婃椂鐜�" - prop="timelyCapture" - > - <el-input - clearable - size="small" - v-model="faceForm.timelyCapture" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.timelyCaptureAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="鏃堕挓鍑嗙‘鐜�" - prop="deviceActiveRate" - > - <el-input - clearable - size="small" - v-model="faceForm.timeAccuracy" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="faceForm.timeAccuracyAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="editFace">纭� 瀹�</el-button> - <el-button @click="cancelFace">鍙� 娑�</el-button> + :title="title" + :visible.sync="whiteShow" + width="500px" + :close-on-click-modal="false" + :before-close="whiteClose"> + <div> + <el-form :model="whiteForm" label-position="top" :rules="whiteFormRules" ref="whiteForm" size="small" + class="add-form"> + <el-form-item label="鐐逛綅" prop="serialNumber"> + <el-select + v-model="whiteForm.pointName" + filterable + remote + reserve-keyword + :disabled="whiteForm.id" + placeholder="鍥芥爣鐮�/鐐逛綅鍚嶇О鎼滅储" + :remote-method="remoteGetPoints" + @change="setPointId" + :loading="selectLoading" + style="width: 460px"> + <el-option + v-for="item in pointList" + :key="item.id" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList"> + <el-select v-model="whiteForm.errorTypeList" multiple> + <el-option v-for="dict in dict.type.error_type" + :value="dict.value" + :key="dict.value" + :label="dict.label"/> + </el-select> + </el-form-item> + <el-form-item label="澶囨敞淇℃伅" prop="remark"> + <el-input v-model="whiteForm.remark"></el-input> + </el-form-item> + </el-form> </div> - </el-dialog> - - <!-- 杞﹁締闃堝�� --> - <el-dialog - title="淇敼杞﹁締宸ュ崟闃堝��" - :visible.sync="carOpen" - width="700px" - append-to-body - > - <el-form - ref="faceForm" - :model="faceForm" - label-width="150px" - :inline="true" - > - <el-form-item class="fixedWidth" label="杩囪溅鏁版嵁閲�" prop="passCarNum"> - <el-input - clearable - size="small" - v-model="carForm.passCarNum" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.passCarNumAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="杩囪溅缂哄け鐜�" - prop="passCarMissRate" - > - <el-input - clearable - size="small" - v-model="carForm.passCarMissRate" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.passCarMissRateAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="鏈夋晥杩囪溅鏁版嵁閲�" - prop="passCarEffectiveNum" - > - <el-input - clearable - size="small" - v-model="carForm.passCarEffectiveNum" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.passCarEffectiveNumAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="璁惧娲昏穬鐜�" - prop="deviceActiveRate" - > - <el-input - clearable - size="small" - v-model="carForm.deviceActiveRate" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.deviceActiveRateAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item - class="fixedWidth" - label="鎶撴媿鍙婃椂鐜�" - prop="timelyCapture" - > - <el-input - clearable - size="small" - v-model="carForm.timelyCapture" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.timelyCaptureAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - <el-form-item class="fixedWidth" label="鏃堕挓鍑嗙‘鐜�" prop="timeAccuracy"> - <el-input - clearable - size="small" - v-model="carForm.timeAccuracy" - placeholder="宸ュ崟闃堝��" - /> - <el-input - clearable - size="small" - v-model="carForm.timeAccuracyAuto" - placeholder="涓嬪彂闃堝��" - /> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="editCar">纭� 瀹�</el-button> - <el-button @click="cancelCar">鍙� 娑�</el-button> - </div> - </el-dialog> - - <!-- 瑙嗛闃堝�� --> - <el-dialog - title="淇敼瑙嗛宸ュ崟闃堝��" - :visible.sync="videoOpen" - width="700px" - append-to-body - > - <el-form - ref="videoForm" - :model="videoForm" - label-width="100px" - :inline="true" - > - <el-form-item - class="fixedWidth" - label="鍥惧儚璐ㄩ噺" - prop="imageQuality" - label-width="100px" - > - <el-select - v-model="videoForm.imageQuality" - placeholder="宸ュ崟闃堝��" - @change="handleModeNameChange" - > - <el-option - :key="dict.value" - :label="dict.value" - v-for="dict in dict.type.image_qualify" - /> - </el-select> - <el-select - v-model="videoForm.imageQualityAuto" - placeholder="涓嬪彂闃堝��" - @change="handleModeNameChange" - > - <el-option - :key="dict.value" - :label="dict.value" - v-for="dict in dict.type.image_qualify" - /> - </el-select> - </el-form-item> - <el-form-item - class="fixedWidth" - label="瑙嗛璐ㄩ噺" - prop="videoQuality" - label-width="100px" - > - <el-select - v-model="videoForm.videoQuality" - placeholder="宸ュ崟闃堝��" - @change="handleModeNameChange" - > - <el-option - :key="dict.value" - :label="dict.value" - v-for="dict in dict.type.video_qualify" - /> - </el-select> - <el-select - v-model="videoForm.videoQualityAuto" - placeholder="涓嬪彂闃堝��" - @change="handleModeNameChange" - > - <el-option - :key="dict.value" - :label="dict.value" - v-for="dict in dict.type.video_qualify" - /> - </el-select> - </el-form-item> - <el-form-item - class="fixedWidth" - label="鏍囨敞鍑嗙‘鐜�" - prop="annotationAccuracy" - label-width="100px" - > - <el-input - v-model="videoForm.annotationAccuracy" - type="number" - size="small" - placeholder="宸ュ崟闃堝��" - ></el-input> - <el-input - v-model="videoForm.annotationAccuracy" - type="number" - size="small" - placeholder="涓嬪彂闃堝��" - ></el-input> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="editVideo">纭� 瀹�</el-button> - <el-button @click="cancelVideo">鍙� 娑�</el-button> - </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="whiteClose">鍙� 娑�</el-button> + <el-button type="primary" @click="whiteSubmit">纭� 瀹�</el-button> + </span> </el-dialog> </div> + </template> <script> import { listThreshold, getThreshold, - editVideo, -} from "@/api/platform/threshold"; -import { + updateThreshold, + importData, editCar, editFace, getCar, getFace, getVideo, -} from "../../../../api/platform/threshold"; + getWhiteList, + getWhite, + addWhiteList, + bathDelete, + updateWhite, + whiteExport +} from "@/api/platform/threshold"; + +import {pointSelectData} from "@/api/platform/point"; +import {addError} from "../../../../api/platform/threshold"; export default { - dicts: ["image_qualify", "video_qualify"], + dicts: ["image_qualify", "video_qualify", "error_type"], name: "Threshold", data() { return { - ifEdit: false, + download: false, + addErrorLoading: false, + scrollPosition: 0, // 鐢ㄤ簬淇濆瓨婊氬姩浣嶇疆 + // 涓嬫媺鍔犺浇 + selectLoading: false, + ifEditVideo: false, + ifEditFace: false, + ifEditCar: false, + // 鐐逛綅list + pointList: [], indicators: [], // 閬僵灞� loading: true, @@ -1112,9 +485,10 @@ // 鎬绘潯鏁� total: 0, // 杩愮淮闃堝�艰〃鏍兼暟鎹� - thresholdList: [], + thresholdList: {}, videoList: [], faceList: [], + carList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -1126,56 +500,65 @@ pageNum: 1, pageSize: 10, monitorType: null, + serialNumber: null, + pointName: null, }, // 琛ㄥ崟鍙傛暟 videoForm: {}, carForm: {}, faceForm: {}, + addErrorForm: {}, + // 鏂板妗嗘牎楠� + addErrorFormRules: { + errorTypeList: [ + {required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur"} + ], + }, // 琛ㄥ崟鏍¢獙 faceRules: { monitorType: [ - { required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change" }, + {required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change"}, ], captureNum: [ - { required: true, message: "璇峰~鍐欐姄鎷嶉噺", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐姄鎷嶉噺", trigger: "blur"}, ], timelyRate: [ - { required: true, message: "璇峰~鍐欏強鏃剁巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欏強鏃剁巼", trigger: "blur"}, ], delayAmount: [ - { required: true, message: "璇峰~鍐欏欢杩熼噺", trigger: "blur" }, + {required: true, message: "璇峰~鍐欏欢杩熼噺", trigger: "blur"}, ], deviceActiveRate: [ - { required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur"}, ], timeAccuracy: [ - { required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur"}, ], timelyCapture: [ - { required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur"}, ], }, carRules: { monitorType: [ - { required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change" }, + {required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change"}, ], passCarNum: [ - { required: true, message: "璇峰~鍐欒繃杞︽暟鎹噺", trigger: "blur" }, + {required: true, message: "璇峰~鍐欒繃杞︽暟鎹噺", trigger: "blur"}, ], passCarMissRate: [ - { required: true, message: "璇峰~鍐欒繃杞︾己澶辩巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欒繃杞︾己澶辩巼", trigger: "blur"}, ], passCarEffectiveNum: [ - { required: true, message: "璇峰~鍐欐湁鏁堣繃杞︽暟鎹噺", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐湁鏁堣繃杞︽暟鎹噺", trigger: "blur"}, ], timelyCapture: [ - { required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur"}, ], deviceActiveRate: [ - { required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur"}, ], timeAccuracy: [ - { required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur"}, ], }, rules: { @@ -1187,28 +570,113 @@ }, ], videoQuality: [ - { required: true, message: "璇烽�夋嫨瑙嗛璐ㄩ噺闃堝��", trigger: "change" }, + {required: true, message: "璇烽�夋嫨瑙嗛璐ㄩ噺闃堝��", trigger: "change"}, ], imageQuality: [ - { required: true, message: "璇烽�夋嫨鍥惧儚璐ㄩ噺闃堝��", trigger: "change" }, + {required: true, message: "璇烽�夋嫨鍥惧儚璐ㄩ噺闃堝��", trigger: "change"}, ], annotationAccuracy: [ - { required: true, message: "璇峰~鍐欐爣娉ㄥ噯纭巼闃堝��", trigger: "blur" }, + {required: true, message: "璇峰~鍐欐爣娉ㄥ噯纭巼闃堝��", trigger: "blur"}, ], }, + // 鐧藉悕鍗曞垪琛� + workOrderWhiteList: [], + // 鏂板妗� + whiteShow: false, + whiteForm: { + serialNumber: "", + remark: "", + }, + // 鏂板妗嗘牎楠� + whiteFormRules: { + serialNumber: [ + {required: true, message: "璁惧涓嶈兘涓虹┖", trigger: "blur"}, + ], + errorTypeList: [ + {required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur"} + ], + }, + // 瀵煎叆鏂囦欢璺緞 + importUrl: '', + fileList: [], + importFile: null, + upload: false, }; }, created() { this.getList(); + this.getWhiteList(); }, methods: { - a() { - this.ifEdit = true; + setPointId(selectedValue) { + const selectedItem = this.pointList.find(item => item.value === selectedValue); + this.whiteForm.serialNumber = selectedItem.id }, - b(){ - console.log(1111111); - this.ifEdit = false; - console.log(this.ifEdit); + // 杩滅▼鎼滅储鐐逛綅 + remoteGetPoints(query) { + if (query !== '') { + this.selectLoading = true; + let data = { + "keyword": query + } + pointSelectData(data).then(res => { + this.pointList = res.data; + this.selectLoading = false; + }) + } else { + this.pointList = []; + } + }, + handleExport() { + this.download = true + whiteExport().then(res => { + // 灏嗕簩杩涘埗鏁版嵁杞崲涓� Blob 瀵硅薄 + let blob = new Blob([res], {type: 'application/octet-stream'}); + + // 鍒涘缓涓嬭浇閾炬帴 + let downloadLink = document.createElement('a'); + downloadLink.href = URL.createObjectURL(blob); + downloadLink.setAttribute('download', "宸ュ崟鐧藉悕鍗曟竻鍗�.xlsx"); // 璁剧疆涓嬭浇鏂囦欢鐨勬枃浠跺悕 + downloadLink.style.display = 'none'; + // 娣诲姞鍒伴〉闈㈠苟瑙﹀彂涓嬭浇 + document.body.appendChild(downloadLink); + downloadLink.click(); + document.body.removeChild(downloadLink); + this.download = false + }) + }, + showEdit(value) { + if (value == "video") { + this.videoList = JSON.parse(JSON.stringify(this.thresholdList.video)); + this.ifEditVideo = true; + } + if (value == "face") { + this.faceList = JSON.parse(JSON.stringify(this.thresholdList.face)); + this.ifEditFace = true; + } + if (value == "car") { + this.carList = JSON.parse(JSON.stringify(this.thresholdList.car)); + this.ifEditCar = true; + } + }, + saveEdit(value) { + let data = [] + if (value == "video") { + data = this.videoList; + this.ifEditVideo = false; + } + if (value == "face") { + data = this.faceList; + this.ifEditFace = false; + } + if (value == "car") { + data = this.carList; + this.ifEditCar = false; + } + updateThreshold(data).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.getList(); + }); }, showContent(row) { if (row.monitorType === "car") { @@ -1263,8 +731,19 @@ getList() { this.loading = true; listThreshold(this.queryParams).then((response) => { - this.thresholdList = response.rows; - this.videoList = this.thresholdList[0]; + this.thresholdList = response.data; + this.videoList = JSON.parse(JSON.stringify(this.thresholdList.video)); + this.faceList = JSON.parse(JSON.stringify(this.thresholdList.face)); + this.carList = JSON.parse(JSON.stringify(this.thresholdList.car)); + this.total = response.total; + this.loading = false; + }); + }, + getWhiteList() { + // 淇濆瓨褰撳墠婊氬姩浣嶇疆 + this.loading = true; + getWhiteList(this.queryParams).then((response) => { + this.workOrderWhiteList = response.data; this.total = response.total; this.loading = false; }); @@ -1335,28 +814,28 @@ this.resetForm("carForm"); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, + // handleQuery() { + // this.queryParams.pageNum = 1; + // this.getList(); + // }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ - resetQuery() { - this.resetForm("queryForm"); - this.handleQuery(); - }, + // resetQuery() { + // this.resetForm("queryForm"); + // this.handleQuery(); + // }, // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { - this.ids = selection.map((item) => item.id); - this.single = selection.length !== 1; - this.multiple = !selection.length; - }, + // handleSelectionChange(selection) { + // this.ids = selection.map((item) => item.id); + // this.single = selection.length !== 1; + // this.multiple = !selection.length; + // }, /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "娣诲姞杩愮淮闃堝��"; - this.handleModeNameChange(); - }, + // handleAdd() { + // this.reset(); + // this.open = true; + // this.title = "娣诲姞杩愮淮闃堝��"; + // this.handleModeNameChange(); + // }, /** 淇敼鎸夐挳鎿嶄綔 */ updateWho(row) { if (row.monitorType === "face") { @@ -1376,16 +855,16 @@ }); } }, - handleUpdate(row) { - this.reset(); - const id = row.id || this.ids; - getThreshold(id).then((response) => { - this.form = response.data; - this.indicators = JSON.parse(this.form.indicator); - this.videoOpen = true; - this.title = "淇敼杩愮淮闃堝��"; - }); - }, + // handleUpdate(row) { + // this.reset(); + // const id = row.id || this.ids; + // getThreshold(id).then((response) => { + // this.form = response.data; + // this.indicators = JSON.parse(this.form.indicator); + // this.videoOpen = true; + // this.title = "淇敼杩愮淮闃堝��"; + // }); + // }, /** 鎻愪氦鎸夐挳 */ submitForm() { this.$refs["form"].validate((valid) => { @@ -1420,7 +899,8 @@ this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) - .catch(() => {}); + .catch(() => { + }); }, /** 鍒囨崲涓嶅悓鎸囨爣 */ handleModeNameChange() { @@ -1511,24 +991,127 @@ ]; } }, - }, + // 鎵撳紑鏂板妗� + whiteOpen() { + this.title = "鏂板鐧藉悕鍗�" + this.whiteShow = true; + }, + // 鍏抽棴鏂板妗� + whiteClose() { + this.whiteShow = false; + this.whiteReset(); + }, + // 鏂板鏁呴殰绫诲瀷 + addError() { + this.$refs["addErrorForm"].validate((valid) => { + if (valid) { + this.addErrorLoading = true + addError(this.addErrorForm).then((response) => { + this.$modal.msgSuccess("娣诲姞鎴愬姛"); + this.getWhiteList(); + }); + this.addErrorLoading = false + } + }); + }, + // 鐧藉悕鍗曟鎻愪氦 + whiteSubmit() { + this.$refs["whiteForm"].validate((valid) => { + if (valid) { + if (this.whiteForm.id != null) { + updateWhite(this.whiteForm).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.whiteShow = false; + this.getWhiteList(); + this.whiteReset(); + }); + } else { + addWhiteList(this.whiteForm).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.whiteShow = false; + this.getWhiteList(); + this.whiteReset(); + }); + } + } + }); + }, + // 鏂板妗嗛噸缃� + whiteReset() { + this.whiteForm = { + serialNumber: "", + remark: "", + }; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleWhiteUpdate(row) { + this.whiteReset(); + const id = row.id + getWhite(id).then(response => { + this.whiteForm = response.data; + this.title = "淇敼鐧藉悕鍗�"; + this.whiteShow = true; + }); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length !== 1 + this.multiple = !selection.length + }, + // 鎵归噺鍒犻櫎 + bathDelete() { + bathDelete(this.ids).then(() => { + this.getWhiteList(); + this.$modal.msgSuccess("鎵归噺鍒犻櫎鎴愬姛"); + this.ids = []; + }) + }, + beforeUpload(file) { + this.importFile = file + this.fileList = [file] + return false + }, + // 瀵煎叆鐧藉悕鍗� + handleImport() { + this.upload = true; + let formData = new FormData() + formData.append("file", this.importFile) + importData(formData).then(res => { + this.$message.success("瀵煎叆鎴愬姛") + this.upload = false + this.fileList = [] + this.getWhiteList() + }).catch(() => { + this.upload = false + }) + } + } }; </script> <style scoped> +.add-form /deep/ .el-form-item { + margin-bottom: 20px; +} + ::v-deep .el-input-half-width { width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */ } + ::v-deep .table-row { display: flex; flex-direction: row; } + ::v-deep .table-row-item { width: 120px; text-align: center; } + .fixedWidth { width: 200px; } + .threshold { display: flex; flex-direction: row; @@ -1536,8 +1119,29 @@ .header鈥攖ext { font-weight: bold; + font-size: large; } + ::v-deep .el-form-item { margin-bottom: 0px; /* 鏍规嵁闇�姹傝皟鏁磋繖涓�� */ } + +::v-deep .el-form-item__label { + color: #8d8d8d; +} + +.unit { + margin-left: 5px; + display: inline-block; +} + +.content-warp { + margin-top: 10px; +} + +.bottom_ { + width: 100%; + margin-bottom: 8px; +} + </style> -- Gitblit v1.8.0