From 21b2c44753bf6e0587bd795f2557da63399d6fdf Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期六, 12 三月 2022 19:29:17 +0800 Subject: [PATCH] 完善底库功能 --- src/api/baseLibrary.ts | 86 + src/pages/library/components/carList.vue | 1039 ++++++++-------------- src/pages/library/index/App.vue | 122 +- src/pages/library/components/baseList.vue | 156 +-- src/pages/library/components/personList.vue | 1107 ++++++++---------------- src/Pool/BaseManageData.ts | 135 +- 6 files changed, 998 insertions(+), 1,647 deletions(-) diff --git a/src/Pool/BaseManageData.ts b/src/Pool/BaseManageData.ts index 0a99a6a..b58422d 100644 --- a/src/Pool/BaseManageData.ts +++ b/src/Pool/BaseManageData.ts @@ -7,67 +7,64 @@ getTagList, copy, move -} from "@/api/baseLibrary"; +} from "@/api/baseLibrary" export default class BaseManageData { - public syncTables: Array<object> = []; - public localTables: Array<object> = []; - public personList: Array<object>; - public personId: string = ""; - public blackList: Array<object> = []; - public selectBlacks: Array<object> = []; - public whiteList: Array<object> = []; - public selectWhites: Array<object> = []; - public page: number; - public size: number; - public contentValue: string = ""; - public tableId: number; - public orderName: string = "createTime"; - public orderType: string = "desc"; - public faceUrl: string = ""; - public threshold: number = 60; - public total: number; - public picUrl: string = ""; - + public syncTables: Array<object> = [] + public localTables: Array<object> = [] + public personList: Array<object> + public personId: string = "" + public blackList: Array<object> = [] + public selectBlacks: Array<object> = [] + public whiteList: Array<object> = [] + public selectWhites: Array<object> = [] + public page: number + public size: number + public contentValue: string = "" + public tableId: number + public orderName: string = "createTime" + public orderType: string = "desc" + public faceUrl: string = "" + public threshold: number = 60 + public total: number + public picUrl: string = "" constructor() { - this.personList = []; - this.page = 1; - this.size = 10; - this.total = 0; + this.personList = [] + this.page = 1 + this.size = 10 + this.total = 0 } cleanData() { - this.personList = []; - this.page = 1; - this.size = 10; - this.total = 0; + this.personList = [] + this.page = 1 + this.size = 10 + this.total = 0 } async querySyncTables() { - const rsp: any = await getSyncTables({ - - }); + const rsp: any = await getSyncTables({}) if (rsp && rsp.success) { this.syncTables.splice(0, this.syncTables.length) - rsp.data.datalist.forEach(element => { - this.syncTables.push((element as any)) - }); + rsp.data.datalist.forEach((element) => { + this.syncTables.push(element as any) + }) } } async queryLocalTables() { - const rsp: any = await getLocalTables({ - - }); + const rsp: any = await getLocalTables({}) if (rsp && rsp.success) { this.localTables.splice(0, this.localTables.length) - rsp.data.datalist.forEach(element => { - this.localTables.push((element as any)) - }); + rsp.data.datalist.forEach((element) => { + this.localTables.push(element as any) + }) } } async queryPersonList() { + this.cleanData() + const rsp: any = await getPersonList({ tableId: this.tableId, page: this.page, @@ -75,32 +72,30 @@ contentValue: this.contentValue, orderType: this.orderType, orderName: this.orderName - }); + }) if (rsp && rsp.success) { this.personList.splice(0, this.personList.length) - rsp.data.datalist.forEach(element => { + rsp.data.datalist.forEach((element) => { let carUrls = element.carPicUrls.split(";") element.carUrls = [] - carUrls.forEach(picUrl => { + carUrls.forEach((picUrl) => { element.carUrls.push({ url: "/httpImage/" + picUrl }) - }); + }) element.faceUrl = [] element.faceUrl.push({ url: "/httpImage/" + element.personPicUrl }) - this.personList.push((element as any)) - }); + this.personList.push(element as any) + }) this.total = rsp.data.total } } async queryPersonListByPhoto() { - const rsp: any = await getPersonListByPhoto({ - - }); + const rsp: any = await getPersonListByPhoto({}) if (rsp && rsp.success) { this.personList.splice(0, this.personList.length) - rsp.data.datalist.forEach(element => { - this.personList.push((element as any)) - }); + rsp.data.datalist.forEach((element) => { + this.personList.push(element as any) + }) } } async searchPhotoFromBase() { @@ -115,40 +110,44 @@ picUrl: this.picUrl }) console.log("搴曞簱浠ュ浘鎼滃浘杩斿洖锛�", rsp) - this.personList = []; + this.personList = [] if (rsp && rsp.success) { - rsp.data.totalList.forEach(element => { - this.personList.push((element as any)) - }); + rsp.data.totalList.forEach((element) => { + this.personList.push(element as any) + }) console.log("鍒楄〃锛�", this.personList) this.total = rsp.data.total } } async queryTagList() { - const rsp: any = await getTagList({}); + const rsp: any = await getTagList({}) // console.log("tag杩斿洖鍊�: ",rsp) if (rsp && rsp.success) { // 鏀剧疆榛戠櫧鍚嶅崟 0涓虹櫧鍚嶅崟 this.blackList.length = 0 this.whiteList.length = 0 - rsp.data.forEach(i => { - if (i.status === 0 && i.bwType === "0") { //鐧藉悕鍗� - if (i.analyServerId === "") { //鍚屾搴� - i.title = i.title + '(鍚屾搴�)' + rsp.data.forEach((i) => { + if (i.status === 0 && i.bwType === "0") { + //鐧藉悕鍗� + if (i.analyServerId === "") { + //鍚屾搴� + i.title = i.title + "(鍚屾搴�)" this.whiteList.push(i) } else { this.whiteList.push(i) } } - if (i.status === 0 && i.bwType === "1") { //榛戝悕鍗� - if (i.analyServerId === "") { //鍚屾搴� - i.title = i.title + '(鍚屾搴�)' + if (i.status === 0 && i.bwType === "1") { + //榛戝悕鍗� + if (i.analyServerId === "") { + //鍚屾搴� + i.title = i.title + "(鍚屾搴�)" this.blackList.push(i) } else { this.blackList.push(i) } } - }); + }) } } async copyTo() { @@ -167,7 +166,5 @@ const rsp: any = await move(param) return rsp } - mounted() { - - } -} \ No newline at end of file + mounted() {} +} diff --git a/src/api/baseLibrary.ts b/src/api/baseLibrary.ts index e12fbf9..4faf772 100644 --- a/src/api/baseLibrary.ts +++ b/src/api/baseLibrary.ts @@ -1,4 +1,4 @@ -import request from "@/scripts/httpRequest"; +import request from "@/scripts/httpRequest" /** * @description 鍚屾搴撳垪琛� @@ -9,8 +9,8 @@ url: "/data/api-v/dbtable/queryDbTables", method: "post", data: { isSync: 1 } - }); -}; + }) +} /** * @description 鏈湴搴撳垪琛� @@ -21,8 +21,8 @@ url: "/data/api-v/dbtable/queryDbTables", method: "post", data: { isSync: 2 } - }); -}; + }) +} /** * @description 娣诲姞搴曞簱 @@ -39,8 +39,8 @@ url: "/data/api-v/dbtable/addDbTableInfo", method: "put", data: query - }); -}; + }) +} /** * @description 淇敼搴曞簱 @@ -57,8 +57,8 @@ url: "/data/api-v/dbtable/updateDbTables", method: "post", data: query - }); -}; + }) +} /** * 鏇存敼搴曞簱鐘舵�� @@ -70,8 +70,8 @@ url: "/data/api-v/dbtable/updateDbTableStatus", method: "post", data: query - }); -}; + }) +} /** * @description 浜哄憳鍒楄〃 @@ -87,8 +87,8 @@ url: "/data/api-v/dbperson/queryDbPersonsByTbId", method: "post", data: query - }); -}; + }) +} /** * @description 浠ュ浘鎼滃浘浜哄憳鍒楄〃 @@ -105,8 +105,8 @@ url: "/data/api-v/dbperson/queryDbPersonsByCampare/", method: "post", data: query - }); -}; + }) +} /** * @description 鎵归噺鍒犻櫎 @@ -117,8 +117,8 @@ url: "/data/api-v/dbperson/deleteMoreDbPerson", method: "post", data: query - }); -}; + }) +} /** * @description 淇敼搴曞簱浜哄憳 @@ -126,7 +126,7 @@ * @param { string } age 骞撮緞 * @param { string } idcard 韬唤璇佸彿 * @param { string } enabled 0涓虹敓鏁� 1涓哄け鏁� - * @param { string } monitorLevel 绛夌骇 + * @param { string } monitorLevel 绛夌骇 * @param { string } tableId 搴搃d * @param { string } phoneNum 鎵嬫満鍙风爜 * @param { string } personName 浜哄憳濮撳悕 @@ -137,8 +137,8 @@ url: "/data/api-v/dbperson/updateDbPerson", method: "post", data: query - }); -}; + }) +} /** * @description 搴曞簱鐨勪互鍥炬悳鍥� @@ -153,8 +153,8 @@ url: "/data/api-v/dbperson/queryDbPersonsByCompare", method: "post", data: query - }); -}; + }) +} // 搴曞簱椤甸潰鏍囩鏌ヨ export const getTagList = (query: any) => { @@ -162,8 +162,8 @@ url: "/data/api-v/es/tagList", method: "post", data: query - }); -}; + }) +} // 澶嶅埗 export const copy = (query: any) => { @@ -171,8 +171,8 @@ url: "/data/api-v/dbperson/copy", method: "post", data: query - }); -}; + }) +} // 绉诲姩 export const move = (query: any) => { @@ -180,8 +180,8 @@ url: "/data/api-v/dbperson/move", method: "post", data: query - }); -}; + }) +} // 鎵归噺涓婁紶杞︾墝 export const plateBatch = (query: any) => { @@ -198,7 +198,7 @@ * @param { string } age 骞撮緞 * @param { string } idcard 韬唤璇佸彿 * @param { string } enabled 0涓虹敓鏁� 1涓哄け鏁� - * @param { string } monitorLevel 绛夌骇 + * @param { string } monitorLevel 绛夌骇 * @param { string } tableId 搴搃d * @param { string } phoneNum 鎵嬫満鍙风爜 * @param { string } personName 浜哄憳濮撳悕 @@ -213,8 +213,8 @@ url: "/data/api-v/dbperson/addDbPerson", method: "put", data: query - }); -}; + }) +} /** * @description 淇敼杞﹁締淇℃伅 @@ -222,7 +222,7 @@ * @param { string } age 骞撮緞 * @param { string } idcard 韬唤璇佸彿 * @param { string } enabled 0涓虹敓鏁� 1涓哄け鏁� - * @param { string } monitorLevel 绛夌骇 + * @param { string } monitorLevel 绛夌骇 * @param { string } tableId 搴搃d * @param { string } phoneNum 鎵嬫満鍙风爜 * @param { string } personName 浜哄憳濮撳悕 @@ -237,5 +237,23 @@ url: "/data/api-v/dbperson/updateDbPerson", method: "post", data: query - }); -}; \ No newline at end of file + }) +} + +// 鍒犻櫎搴曞簱 +export const deleteDBtablesById = (query: any) => { + return request({ + url: "/data/api-v/dbtable/deleteDBtablesById", + method: "get", + params: query + }) +} + +// 鍒犻櫎鍗曚釜浜哄憳 +export const deleteDbPersonById = (query: any) => { + return request({ + url: "/data/api-v/dbtable/deleteDbPersonById", + method: "get", + params: query + }) +} diff --git a/src/pages/library/components/baseList.vue b/src/pages/library/components/baseList.vue index 3062d4d..ef99051 100644 --- a/src/pages/library/components/baseList.vue +++ b/src/pages/library/components/baseList.vue @@ -1,17 +1,9 @@ <template> - <div - :style="listWidth ? `width:${listWidth};` : ''" - class="out-div el-menu-vertical-demo" - > + <div :style="listWidth ? `width:${listWidth};` : ''" class="out-div el-menu-vertical-demo"> <el-collapse v-model="activeNames"> <el-collapse-item name="1" class="el-collapse-item__wrap"> <template slot="title"> - <img - v-if="title === '鍚屾搴�'" - src="/images/library/鍚屾搴�2.png" - alt="" - srcset="" - /> + <img v-if="title === '鍚屾搴�'" src="/images/library/鍚屾搴�2.png" alt="" srcset="" /> <img v-else src="/images/library/鏈湴搴�2.png" alt="" srcset="" /> <span class="m5">{{ title }}</span> <el-tooltip content="娣诲姞鍚屾搴�" placement="top"> @@ -37,26 +29,11 @@ @click.native="clickCategory(index, 'sync', item)" :class="{ activeRow: categoryIndex == 'sync' + index }" > - <el-col - :span="12" - :class="item.bwType === '1' ? 'c-red' : 'c-green'" - > - <p - style="text-align: left; margin-left: 5px" - class="name-ellipsis" - :title="item.tableName" - > - <span - class="iconfont iconrenyuanku-09" - v-if="item.tableType == 'person'" - ></span> - <span - class="iconfont iconcheliangku-09" - v-if="item.tableType == 'car'" - ></span> - <span style="font-size: 14px; font-weight: bold"> - {{ item.tableName }}</span - > + <el-col :span="12" :class="item.bwType === '1' ? 'c-red' : 'c-green'"> + <p style="text-align: left; margin-left: 5px" class="name-ellipsis" :title="item.tableName"> + <span class="iconfont iconrenyuanku-09" v-if="item.tableType == 'person'"></span> + <span class="iconfont iconcheliangku-09" v-if="item.tableType == 'car'"></span> + <span style="font-size: 14px; font-weight: bold"> {{ item.tableName }}</span> </p> </el-col> <el-col :span="10" :offset="1"> @@ -110,23 +87,10 @@ @click.native="clickCategory(index, 'local', item)" :class="{ activeRow: categoryIndex == 'local' + index }" > - <el-col - :span="12" - :class="item.bwType === '1' ? 'c-red' : 'c-green'" - > - <p - style="text-align: left; margin-left: 5px" - class="name-ellipsis" - :title="item.tableName" - > - <span - class="iconfont iconrenyuanku-09" - v-if="item.tableType == 'person'" - ></span> - <span - class="iconfont iconcheliangku-09" - v-if="item.tableType == 'car'" - ></span> + <el-col :span="12" :class="item.bwType === '1' ? 'c-red' : 'c-green'"> + <p style="text-align: left; margin-left: 5px" class="name-ellipsis" :title="item.tableName"> + <span class="iconfont iconrenyuanku-09" v-if="item.tableType == 'person'"></span> + <span class="iconfont iconcheliangku-09" v-if="item.tableType == 'car'"></span> <span> {{ item.tableName }}</span> </p> </el-col> @@ -159,7 +123,7 @@ </div> </template> <script> -import { updateDbTableStatus } from "@/api/baseLibrary"; +import { updateDbTableStatus } from "@/api/baseLibrary" export default { name: "baseList", data() { @@ -169,121 +133,113 @@ categoryIndex: "", syncTableList: [], localTableList: [], - clickBase: {}, // 褰撳墠鐐瑰嚮鐨勫簳搴撳璞� - }; + clickBase: {} // 褰撳墠鐐瑰嚮鐨勫簳搴撳璞� + } }, computed: { isAdmin() { - if ( - sessionStorage.getItem("userInfo") && - sessionStorage.getItem("userInfo") !== "" - ) { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; - return loginName === "superadmin" || loginName === "basic"; + if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") { + let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username + return loginName === "superadmin" || loginName === "basic" } - return false; - }, + return false + } }, mounted() { - this.init(); + this.init() }, methods: { isShow(authority) { - return ( - this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 - ); + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 }, async init(typ) { - await this.BaseManageData.querySyncTables(); - this.syncTableList = this.BaseManageData.syncTables; + await this.BaseManageData.querySyncTables() + this.syncTableList = this.BaseManageData.syncTables if (typ) { - this.clickLast(typ); + this.clickLast(typ) } else { - this.defaultShow(); + this.defaultShow() } - await this.BaseManageData.queryLocalTables(); - this.localTableList = this.BaseManageData.localTables; + await this.BaseManageData.queryLocalTables() + this.localTableList = this.BaseManageData.localTables if (typ) { - this.clickLast(typ); + this.clickLast(typ) } else { - this.defaultShow(); + this.defaultShow() } }, add(type) { - this.$emit("changeShow", null, type); + this.$emit("changeShow", null, type) }, clickLast(type) { // this.$nextTick(() => { // }); - this.clickCategory( - this.syncTableList.length - 1, - type, - this.syncTableList[this.syncTableList.length - 1] - ); + this.clickCategory(this.syncTableList.length - 1, type, this.syncTableList[this.syncTableList.length - 1]) }, clickCategory(index, type, item) { - this.categoryIndex = type + index; + this.categoryIndex = type + index // 璋冪敤鍒囨崲鍙充晶闈㈡澘鐨勫嚱鏁板苟涓斿垏鎹㈢埗缁勪欢涓璱sSelected鐨勫�艰鍙︿竴涓粍浠舵竻闄よ閫変腑鐘舵�� - this.clickBase = item; - this.$emit("getList", item, type); + this.clickBase = item + this.$emit("getList", item, type) + console.log("clickCategory", item, type) }, // 榛樿鏄剧ず绗竴涓簱鐨勬暟鎹� defaultShow() { if (this.syncTableList && this.syncTableList.length) { - this.clickCategory(0, "sync", this.syncTableList[0]); + this.clickCategory(0, "sync", this.syncTableList[0]) } else { if (this.localTableList && this.localTableList.length) { - this.clickCategory(0, "local", this.syncTableList[0]); + this.clickCategory(0, "local", this.syncTableList[0]) } } }, // 娣诲姞鏃堕棿姣旇緝鍑芥暟 dateParse(dateString) { - var SEPARATOR_BAR = "-"; - var SEPARATOR_SLASH = "/"; - var SEPARATOR_DOT = "."; - var dateArray; + var SEPARATOR_BAR = "-" + var SEPARATOR_SLASH = "/" + var SEPARATOR_DOT = "." + var dateArray if (dateString.indexOf(SEPARATOR_BAR) > -1) { - dateArray = dateString.split(SEPARATOR_BAR); + dateArray = dateString.split(SEPARATOR_BAR) } else if (dateString.indexOf(SEPARATOR_SLASH) > -1) { - dateArray = dateString.split(SEPARATOR_SLASH); + dateArray = dateString.split(SEPARATOR_SLASH) } else { - dateArray = dateString.split(SEPARATOR_DOT); + dateArray = dateString.split(SEPARATOR_DOT) } - return new Date(dateArray[0], dateArray[1] - 1, dateArray[2]); + return new Date(dateArray[0], dateArray[1] - 1, dateArray[2]) }, isEmpty(str) { if (!str || str === undefined || str === null) { - return true; + return true } else { - return false; + return false } - }, + } }, props: { listWidth: { default: "224px", - type: String, + type: String }, title: { default: "鍚屾搴�", - type: String, + type: String }, titleB: { default: "鏈湴搴�", - type: String, + type: String }, isSelected: { default: false, - type: Boolean, + type: Boolean }, type: { default: "", - type: String, - }, - }, -}; + type: String + } + } +} </script> <style lang="scss"> .iconStyle1 { diff --git a/src/pages/library/components/carList.vue b/src/pages/library/components/carList.vue index ff01f45..41208c7 100644 --- a/src/pages/library/components/carList.vue +++ b/src/pages/library/components/carList.vue @@ -4,18 +4,12 @@ <div class="base-tip"> <div class="left-tips"> <span class="ku-name">{{ this.baseObject.tableName }}</span> - <span - class="list" - :class=" - this.baseObject.bwType === '1' ? 'black-list' : 'white-list' - " - >{{ this.baseObject.bwType === "1" ? "榛戝悕鍗�" : "鐧藉悕鍗�" }}</span - > + <span class="list" :class="this.baseObject.bwType === '1' ? 'black-list' : 'white-list'">{{ + this.baseObject.bwType === "1" ? "榛戝悕鍗�" : "鐧藉悕鍗�" + }}</span> <span class="ok-time" >鏈夋晥鏃堕棿锛歿{ this.baseObject.startTime }} -- - {{ - this.baseObject.endTime ? this.baseObject.endTime : "姘镐箙鏈夋晥" - }}</span + {{ this.baseObject.endTime ? this.baseObject.endTime : "姘镐箙鏈夋晥" }}</span > </div> @@ -43,11 +37,7 @@ </el-tooltip> <el-tooltip content="缂栬緫2" placement="top" popper-class="atooltip"> - <span - class="iconfont iconfont-wrap iconbianjiku-09" - @click.stop="edit" - v-if="isShow('library:set')" - ></span> + <span class="iconfont iconfont-wrap iconbianjiku-09" @click.stop="edit" v-if="isShow('library:set')"></span> </el-tooltip> </div> </div> @@ -69,15 +59,9 @@ v-model="BaseManageData.contentValue" @keyup.enter.native="handleSearch" ></el-input> - <el-button size="small" type="primary" @click="handleSearch" - >鎼滅储</el-button - > + <el-button size="small" type="primary" @click="handleSearch">鎼滅储</el-button> - <el-tooltip - content="鎵归噺鍒犻櫎" - placement="top" - popper-class="atooltip" - > + <el-tooltip content="鎵归噺鍒犻櫎" placement="top" popper-class="atooltip"> <fTemplate authority="library:set"> <span class="iconfont iconfont-wrap iconpiliangshanchu-09" @@ -87,26 +71,12 @@ </fTemplate> </el-tooltip> - <el-tooltip - content="娣诲姞杞﹁締" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconfont-wrap icontianjiacheliang-09" - @click="addCar" - ></span> + <el-tooltip content="娣诲姞杞﹁締" placement="top" popper-class="atooltip"> + <span class="iconfont iconfont-wrap icontianjiacheliang-09" @click="addCar"></span> </el-tooltip> - <el-tooltip - content="鎵归噺涓婁紶杞︾墝" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconfont-wrap iconshangchuanchepai-09" - @click="addBatch" - ></span> + <el-tooltip content="鎵归噺涓婁紶杞︾墝" placement="top" popper-class="atooltip"> + <span class="iconfont iconfont-wrap iconshangchuanchepai-09" @click="addBatch"></span> </el-tooltip> </div> </div> @@ -126,7 +96,7 @@ background: '#fff', color: '#222222', padding: '2px 1px', - borderBottom: 'none', + borderBottom: 'none' }" > <el-table-column type="selection" width="30"></el-table-column> @@ -146,15 +116,8 @@ indicator-position="none" :arrow="scope.row.carUrls.length > 1 ? 'always' : 'never'" > - <el-carousel-item - v-for="(item, index) in scope.row.carUrls" - :key="index" - > - <img - style="width: 100px; height: 100px; object-fit: contain" - :src="item.url" - alt - /> + <el-carousel-item v-for="(item, index) in scope.row.carUrls" :key="index"> + <img style="width: 100px; height: 100px; object-fit: contain" :src="item.url" alt /> </el-carousel-item> </el-carousel> </template> @@ -170,13 +133,7 @@ ></el-switch> </template> </el-table-column> - <el-table-column - prop="carNo" - label="杞︾墝鍙�" - sortable - align="center" - width="120" - ></el-table-column> + <el-table-column prop="carNo" label="杞︾墝鍙�" sortable align="center" width="120"></el-table-column> <el-table-column prop="carType" label="杞﹁締绫诲瀷" @@ -185,21 +142,8 @@ sortable align="center" ></el-table-column> - <el-table-column - prop="carBrand" - label="杞﹁締鍝佺墝" - min-width="100" - sortable - align="center" - ></el-table-column> - <el-table-column - prop="carColor" - label="杞﹁韩棰滆壊" - width="100" - show-overflow-tooltip - sortable - align="center" - > + <el-table-column prop="carBrand" label="杞﹁締鍝佺墝" min-width="100" sortable align="center"></el-table-column> + <el-table-column prop="carColor" label="杞﹁韩棰滆壊" width="100" show-overflow-tooltip sortable align="center"> <template slot-scope="scope">{{ getDataName(VideoPhotoData.dictionary.nColor, scope.row.carColor) }}</template> @@ -212,12 +156,7 @@ sortable align="center" ></el-table-column> - <el-table-column - prop="sex" - label="杞︿富鎬у埆" - align="center" - width="80" - ></el-table-column> + <el-table-column prop="sex" label="杞︿富鎬у埆" align="center" width="80"></el-table-column> <el-table-column prop="createTime" @@ -231,11 +170,7 @@ <el-table-column label="鎿嶄綔" min-width="200" align="center"> <template slot-scope="scope"> <fTemplate authority="library:set"> - <el-tooltip - content="缂栬緫" - placement="top" - popper-class="atooltip" - > + <el-tooltip content="缂栬緫" placement="top" popper-class="atooltip"> <span class="iconfont iconbianjixinxi-09" style=" font-size: 24px;cursor: pointer" @@ -243,68 +178,36 @@ ></span> </el-tooltip> </fTemplate> - <el-popover - placement="top" - trigger="click" - popper-class="popper-caozuo1" - > - <el-tooltip - content="鏌ユ壘姝よ溅" - placement="top" - popper-class="atooltip" - > + <el-popover placement="top" trigger="click" popper-class="popper-caozuo1"> + <el-tooltip content="鏌ユ壘姝よ溅" placement="top" popper-class="atooltip"> + <span class="iconfont iconchazhaociren-09" @click="tosearch(scope.row)"></span> + </el-tooltip> + <fTemplate authority="library:set"> + <el-tooltip content="澶嶅埗" placement="top" popper-class="atooltip"> + <span class="iconfont iconfuzhi-09" title="澶嶅埗" @click="copyClick(scope.row)"></span> + </el-tooltip> + </fTemplate> + <fTemplate authority="library:set"> + <el-tooltip content="绉诲姩" placement="top" popper-class="atooltip"> + <span class="iconfont iconyidong-09" title="绉诲姩" @click="moveClick(scope.row)"></span> + </el-tooltip> + </fTemplate> + <fTemplate authority="library:set"> + <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip"> + <span + class="iconfont iconshanchu-09" + style="color: #e74c3c" + @click="askDelete('single', scope.row.id)" + title="鍒犻櫎" + ></span> + </el-tooltip> + </fTemplate> <span - class="iconfont iconchazhaociren-09" - @click="tosearch(scope.row)" - ></span> - </el-tooltip> - <fTemplate authority="library:set"> - <el-tooltip - content="澶嶅埗" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconfuzhi-09" - title="澶嶅埗" - @click="copyClick(scope.row)" - ></span> - </el-tooltip> - </fTemplate> - <fTemplate authority="library:set"> - <el-tooltip - content="绉诲姩" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconyidong-09" - title="绉诲姩" - @click="moveClick(scope.row)" - ></span> - </el-tooltip> - </fTemplate> - <fTemplate authority="library:set"> - <el-tooltip - content="鍒犻櫎" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconshanchu-09" - style="color: #e74c3c" - @click="deleteThis(scope.row.id)" - title="鍒犻櫎" - ></span> - </el-tooltip> - </fTemplate> - <span slot="reference" class="iconfont icongengduocaozuo-09" style="font-size: 24px; cursor: pointer" ></span> </el-popover> - </template> </el-table-column> </el-table> @@ -316,48 +219,26 @@ :total="BaseManageData.total" ></el-pagination> </div> - <el-dialog - title="鎻愮ず" - :visible.sync="dialogVisible" - :append-to-body="true" - :close="getCarList" - width="30%" - > + <el-dialog title="鎻愮ず" :visible.sync="dialogVisible" :append-to-body="true" :close="getCarList" width="30%"> <div> <div class="tl"> <span>涓婁紶鎴愬姛鐨勬暟閲忥細{{ uploadResult.successList.length }}</span> </div> <div class="flex-box mt10"> <span>涓婁紶澶辫触鐨勬暟閲忥細{{ uploadResult.failList.length }}</span> - <div - class="ml20" - v-for="(i, index) in uploadResult.failList" - :key="index" - > + <div class="ml20" v-for="(i, index) in uploadResult.failList" :key="index"> {{ i }} </div> </div> <div class="flex-box mt10"> - <span - >鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{ - uploadResult.multiFaceList.length - }}</span - > - <div - class="ml20" - v-for="(i, index) in uploadResult.multiFaceList" - :key="index" - > + <span>鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.multiFaceList.length }}</span> + <div class="ml20" v-for="(i, index) in uploadResult.multiFaceList" :key="index"> {{ i }} </div> </div> <div class="flex-box mt10"> <span>涓嶅惈浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.noFaceList.length }}</span> - <div - class="ml20" - v-for="(i, index) in uploadResult.noFaceList" - :key="index" - > + <div class="ml20" v-for="(i, index) in uploadResult.noFaceList" :key="index"> {{ i }} </div> </div> @@ -379,21 +260,11 @@ <p>榛戝悕鍗� ></p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectBlacks" - @change="blackAngWhite" - > - <div - class="base" - v-for="(item, index) in BaseManageData.blackList" - :key="index" - > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite"> + <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index"> + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -403,21 +274,11 @@ <p>鐧藉悕鍗� ></p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectWhites" - @change="blackAngWhite" - > - <div - class="base" - v-for="(item, index) in BaseManageData.whiteList" - :key="index" - > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite"> + <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index"> + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -425,9 +286,7 @@ </div> <div slot="footer" class="dialog-footer"> <el-button size="small" @click="copyClose" type="info">鍙� 娑�</el-button> - <el-button size="small" type="primary" @click="copySubmit()" - >纭� 瀹�</el-button - > + <el-button size="small" type="primary" @click="copySubmit()">纭� 瀹�</el-button> </div> </el-dialog> @@ -446,22 +305,11 @@ <p>榛戝悕鍗� ></p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectBlacks" - @change="blackAngWhite" - :max="1" - > - <div - class="base" - v-for="(item, index) in BaseManageData.blackList" - :key="index" - > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite" :max="1"> + <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index"> + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -471,22 +319,11 @@ <p>鐧藉悕鍗� ></p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectWhites" - @change="blackAngWhite" - :max="1" - > - <div - class="base" - v-for="(item, index) in BaseManageData.whiteList" - :key="index" - > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite" :max="1"> + <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index"> + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -494,17 +331,11 @@ </div> <div slot="footer" class="dialog-footer"> <el-button size="small" @click="moveClose" type="info">鍙� 娑�</el-button> - <el-button size="small" type="primary" @click="moveSubmit()" - >纭� 瀹�</el-button - > + <el-button size="small" type="primary" @click="moveSubmit()">纭� 瀹�</el-button> </div> </el-dialog> - <el-dialog - :visible.sync="askDeleteShow" - :center="true" - custom-class="del-dialog" - > + <el-dialog :visible.sync="askDeleteShow" :center="true" custom-class="del-dialog"> <div> <div class="suc-icon"> <i class="iconfont icongantanhao1"></i> @@ -516,7 +347,7 @@ </div> <span slot="footer" class="dialog-footer"> <el-button @click="askDeleteShow = false">鍙� 娑�</el-button> - <el-button type="primary" @click="handleDel">纭� 瀹�</el-button> + <el-button type="primary" @click="handleDel" :loading="delBtnLoading">纭� 瀹�</el-button> </span> </el-dialog> @@ -566,18 +397,10 @@ :rule="rules" > <el-form-item label="杞︾墝鍙�" prop="carNo"> - <el-input - placeholder="璇疯緭鍏ヨ溅鐗屽彿" - v-model="form.carNo" - class="inputWidth" - ></el-input> + <el-input placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form.carNo" class="inputWidth"></el-input> </el-form-item> <el-form-item label="杞﹁締绫诲瀷"> - <el-select - v-model="form.carType" - placeholder="璇烽�夋嫨杞﹁締绫诲瀷" - class="inputWidth" - > + <el-select v-model="form.carType" placeholder="璇烽�夋嫨杞﹁締绫诲瀷" class="inputWidth"> <el-option v-for="item in VideoPhotoData.dictionary.CARTYPE" :key="item.value" @@ -587,11 +410,7 @@ </el-select> </el-form-item> <el-form-item label="杞﹁締鍝佺墝"> - <el-select - v-model="form.carBrand" - placeholder="璇烽�夋嫨杞﹁締鍝佺墝" - class="inputWidth" - > + <el-select v-model="form.carBrand" placeholder="璇烽�夋嫨杞﹁締鍝佺墝" class="inputWidth"> <el-option v-for="item in VideoPhotoData.dictionary.BRAND" :key="item.value" @@ -601,11 +420,7 @@ </el-select> </el-form-item> <el-form-item label="杞﹁韩棰滆壊"> - <el-select - v-model="form.carColor" - placeholder="璇烽�夋嫨杞﹁韩棰滆壊" - class="inputWidth" - > + <el-select v-model="form.carColor" placeholder="璇烽�夋嫨杞﹁韩棰滆壊" class="inputWidth"> <el-option v-for="item in VideoPhotoData.dictionary.nColor" :key="item.value" @@ -643,20 +458,8 @@ </el-form-item> --> </el-form> <div class="dialog-footer"> - <el-button - size="small" - class="sure-btn" - type="primary" - @click="submitCar" - >纭� 瀹�</el-button - > - <el-button - size="small" - class="cancel-btn" - @click="resetForm" - type="info" - >鍙� 娑�</el-button - > + <el-button size="small" class="sure-btn" type="primary" @click="submitCar">纭� 瀹�</el-button> + <el-button size="small" class="cancel-btn" @click="resetForm" type="info">鍙� 娑�</el-button> </div> </el-drawer> @@ -690,20 +493,8 @@ </div> </div> <div class="dialog-footer"> - <el-button - size="small" - class="sure-btn" - type="primary" - @click="platesBatch" - >淇濆瓨</el-button - > - <el-button - size="small" - class="cancel-btn" - @click="resetForm('ruleForm')" - type="info" - >鍙栨秷</el-button - > + <el-button size="small" class="sure-btn" type="primary" @click="platesBatch">淇濆瓨</el-button> + <el-button size="small" class="cancel-btn" @click="resetForm('ruleForm')" type="info">鍙栨秷</el-button> </div> </el-drawer> </div> @@ -715,23 +506,46 @@ deleteBasePersons, plateBatch, updateDbTableStatus, -} from "@/api/baseLibrary"; -import axios from "axios"; -import Upload from "./upload"; -import fTemplate from "@/components/fTemplate"; -import request from "@/scripts/httpRequest"; + deleteDbPersonById, + deleteDBtablesById +} from "@/api/baseLibrary" +import axios from "axios" +import fTemplate from "@/components/fTemplate" +import request from "@/scripts/httpRequest" export default { components: { - fTemplate, + fTemplate }, props: { baseObject: { default: () => {}, - type: Object, + type: Object }, syncType: { - type: String, + type: String + } + }, + + computed: { + isAdmin() { + if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") { + let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username + return loginName === "superadmin" || loginName === "basic" + } + return false }, + delText() { + switch (this.delType) { + case "base": + return ["鍒犻櫎搴曞簱", "纭畾鍒犻櫎璇ュ簳搴擄紵"] + case "single": + return ["鍒犻櫎杞﹁締淇℃伅", "纭畾鍒犻櫎璇ヨ溅杈嗕俊鎭紵"] + case "batch": + return ["鎵归噺鍒犻櫎", "纭畾鍒犻櫎璇ュ簳搴撻�変腑鐨勮溅杈嗕俊鎭紵"] + default: + return ["", ""] + } + } }, data() { return { @@ -744,12 +558,12 @@ fileList: [ { name: "fasjido.jpg", - url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg", + url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" }, { name: "fasjido.jpg", - url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg", - }, + url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" + } ], copyVisiabled: false, moveVisiabled: false, @@ -782,14 +596,10 @@ carBrand: "0", carNo: "", enable: 0, - reserved: "", + reserved: "" }, rules: { - carNo: [{ required: true, message: "璇疯緭鍏ヨ溅鐗屽彿", trigger: "change" }], - // sex: [{ required: true, message: "璇峰嬀閫夋�у埆", trigger: "change" }], - // monitorLevel: [ - // { required: true, message: "璇烽�夋嫨浜哄憳绛夌骇", trigger: "change" }, - // ], + carNo: [{ required: true, message: "璇疯緭鍏ヨ溅鐗屽彿", trigger: "change" }] }, tableData: [], oldWidth: "", @@ -802,145 +612,142 @@ failList: [], successList: [], multiFaceList: [], - noFaceList: [], + noFaceList: [] }, - }; + delBtnLoading: false + } }, - computed: { - isAdmin() { - if ( - sessionStorage.getItem("userInfo") && - sessionStorage.getItem("userInfo") !== "" - ) { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; - return loginName === "superadmin" || loginName === "basic"; - } - return false; + watch: { + "BaseManageData.selectBlacks": function(value) { + this.blackAngWhite() }, - delText() { - switch (this.delType) { - case "base": - return ["鍒犻櫎搴曞簱", "纭畾鍒犻櫎璇ュ簳搴擄紵"]; - case "single": - return ["鍒犻櫎浜哄憳", "纭畾鍒犻櫎璇ュ簳搴撲汉鍛橈紵"]; - case "batch": - return ["鎵归噺鍒犻櫎", "纭畾鍒犻櫎璇ュ簳搴撻�変腑浜哄憳锛�"]; - default: - return ["", ""]; + "BaseManageData.selectWhites": function(value) { + this.blackAngWhite() + } + }, + mounted() { + this.getCarList() + this.VideoPhotoData.queryDictionary() + this.BaseManageData.queryTagList() + this.oldWidth = document.body.clientWidth + this.oldHeight = document.body.clientHeight + this.blackAngWhite() + window.onresize = () => { + let width = document.body.clientWidth + let height = document.body.clientHeight + if (width !== this.oldWidth && width < 1750) { } - }, + this.$nextTick(() => { + this.$refs.multipleTable.doLayout() + }) + } + this.$nextTick(() => { + this.$refs.multipleTable.doLayout() + }) + }, + beforeDestroy() { + window.onresize = null }, methods: { - handleDel() { + async handleDel() { + this.delBtnLoading = true if (this.delType == "single") { - this.deleteThis(); + await this.deleteThis() } else if (this.delType == "base") { - this.deleteBase(); + await this.deleteBase() } else if (this.delType == "batch") { - this.deleteBatch(); + await this.deleteBatch() } + + this.delBtnLoading = false + this.askDeleteShow = false }, deleteBase() { - let token = - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; - fetch(`/data/api-v/dbtable/deleteDBtablesById?id=${this.baseObject.id}`, { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: token, - }, - }) - .then((res) => { - return res.json(); - }) + deleteDBtablesById({ id: this.baseObject.id }) .then((res) => { if (res.success) { this.$notify({ type: "success", - message: "搴曞簱鍒犻櫎鎴愬姛锛�", - }); + message: "搴曞簱鍒犻櫎鎴愬姛锛�" + }) } - this.askDeleteShow=false - this.$emit("onDelete"); + this.askDeleteShow = false + this.$emit("onDelete") }) .catch((err) => { this.$notify({ type: "error", - message: err, - }); - }); + message: err + }) + }) }, handleRemoveCarPic(file, fileList) { var index = fileList.findIndex((item) => { if (item.uid == file.uid) { - return true; + return true } - }); - this.form.carUrls.splice(index, 1); + }) + this.form.carUrls.splice(index, 1) }, isDisabled(item) { - var flag = true; + var flag = true if (this.isShow("library:set")) { if (item.endTime == "") { - flag = false; + flag = false } else { - flag = !this.$moment(new Date()).isBetween( - item.startTime, - item.endTime - ); + flag = !this.$moment(new Date()).isBetween(item.startTime, item.endTime) } } - return flag; + return flag }, handleRemoveFacePic(file, fileList) { - this.form.faceUrl.splice(0, 1); + this.form.faceUrl.splice(0, 1) }, edit() { - this.$emit("changeShow", this.baseObject, this.syncType); + this.$emit("changeShow", this.baseObject, this.syncType) }, // beforeUoload() {}, handlePictureCardPreview(file) { - this.dialogImageUrl = file.url; - this.dialogVisible = true; + this.dialogImageUrl = file.url + this.dialogVisible = true }, async uploadCar(param) { - const fd = new FormData(); - fd.append("file", param.file); - fd.append("picType", "0"); + const fd = new FormData() + fd.append("file", param.file) + fd.append("picType", "0") let res = await request({ method: "post", url: `/data/api-v/dbperson/fileupload`, - data: fd, - }); + data: fd + }) if (res.success) { - this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl }); + this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl }) } }, async uploadPerson(param) { - const fd = new FormData(); - fd.append("file", param.file); - fd.append("picType", "1"); + const fd = new FormData() + fd.append("file", param.file) + fd.append("picType", "1") let res = await request({ method: "post", url: `/data/api-v/dbperson/fileupload`, - data: fd, - }); + data: fd + }) debugger if (res.success) { - this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl }); - this.form.faceFeature = res.data.faceFeature; + this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl }) + this.form.faceFeature = res.data.faceFeature } }, addCar() { - this.addDrawer = true; + this.addDrawer = true }, addBatch() { - this.addBatchDrawer = true; + this.addBatchDrawer = true }, resetForm() {}, handleClose1(done) { - (this.form = { + ;(this.form = { id: "", sex: "鐢�", name: "", @@ -959,120 +766,106 @@ carBrand: "0", carNo: "", enable: 0, - reserved: "", + reserved: "" }), - done(); + done() }, handleClose2(done) { - done(); + done() }, isShow(authority) { - return ( - this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 - ); + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 }, toggleSelection(rows) { if (rows) { rows.forEach((row) => { - this.$refs.multipleTable.toggleRowSelection(row); - }); + this.$refs.multipleTable.toggleRowSelection(row) + }) } else { - this.$refs.multipleTable.clearSelection(); + this.$refs.multipleTable.clearSelection() } }, deleteThis() { - let token = - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; - fetch(`/data/api-v/dbperson/deleteDbPersonById?id=${this.toDeleteId}`, { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: token, - }, - }) - .then((res) => { - return res.json(); - }) + deleteDbPersonById({ id: this.toDeleteId }) .then((data) => { if (data.success) { this.$notify({ type: "success", - message: "璇ヤ汉鍛樺垹闄ゆ垚鍔燂紒", - }); + message: "杞﹁締淇℃伅鍒犻櫎鎴愬姛锛�" + }) } - this.getCarList(); + this.getCarList() }) - .catch((err) => {}); + .catch((err) => {}) }, getUploadResult(result) { - this.uploadResult = result.data; - this.dialogVisible = true; - this.getCarList(); + this.uploadResult = result.data + this.dialogVisible = true + this.getCarList() }, async getCarList() { if (this.baseObject.id && this.baseObject.id !== undefined) { - this.BaseManageData.tableId = this.baseObject.id; - this.setLoadSearch(this.BaseManageData.queryPersonList()); + this.BaseManageData.tableId = this.baseObject.id + this.setLoadSearch(this.BaseManageData.queryPersonList()) } }, changeDialog(data) { data.erFileList.map((item, index) => { this.$notify({ type: "error", - message: item.errorMsg.message, - }); - }); + message: item.errorMsg.message + }) + }) }, handleClose() { - this.dialogFormVisible = false; + this.dialogFormVisible = false }, handleSelectionChange(val) { - this.selectedRowKeys = val; + this.selectedRowKeys = val }, refrash(current, pageSize) { - this.current = current; - this.BaseManageData.page = current; - this.getCarList(); + this.current = current + this.BaseManageData.page = current + this.getCarList() }, handleClick(row) { - this.form = row; + this.form = row // 杩欏潡鍎垮悗鍙扮殑瀛楀吀value鍊兼湁闂锛岄渶瑕佸墠绔潵鍥炶浆 - this.form.carColor += ""; - this.form.carType += ""; - this.form.carBrand += ""; - this.addDrawer = true; + this.form.carColor += "" + this.form.carType += "" + this.form.carBrand += "" + this.addDrawer = true }, async submit() { this.$refs["formForEdit"].validate(async (valid) => { if (valid) { - let { ...json } = this.form; - delete json["compareScore"]; - let res = await updateBasePerson(json); + let { ...json } = this.form + delete json["compareScore"] + let res = await updateBasePerson(json) if (res.success) { this.$notify({ type: "success", - message: "浜哄憳淇敼鎴愬姛锛�", - }); - this.dialogFormVisible = false; + message: "杞﹁締淇℃伅淇敼鎴愬姛锛�" + }) + this.dialogFormVisible = false } else { this.$notify({ type: "error", - message: "浜哄憳淇敼澶辫触锛岃閲嶈瘯锛侊紒", - }); + message: "杞﹁締淇℃伅淇敼澶辫触锛岃閲嶈瘯锛侊紒" + }) } } else { - return false; + return false } - }); + }) }, confirm() { this.$confirm({ title: "Confirm", content: "Bla bla ...", okText: "纭", - cancelText: "鍙栨秷", - }); + cancelText: "鍙栨秷" + }) }, async enable(item) { let res = await updateBasePerson({ @@ -1085,44 +878,44 @@ phoneNum: item.phoneNum, monitorLevel: item.monitorLevel, personPicUrl: item.personPicUrl, - reserved: item.reserved, - }); + reserved: item.reserved + }) if (res.success) { this.$notify({ type: "success", - message: "搴曞簱浜哄憳鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒", - }); + message: "杞﹁締淇℃伅鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒" + }) } else { this.$notify({ type: "error", - message: "搴曞簱浜哄憳鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒", - }); + message: "杞﹁締淇℃伅鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒" + }) } }, handleSearch() { - this.getCarList(); + this.getCarList() }, searchImg() { - this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart(); + this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart() }, haveScore(row) { - return row.compareScore && row.compareScore !== ""; + return row.compareScore && row.compareScore !== "" }, async setEnable(item) { let res = await updateDbTableStatus({ id: item.id, - enable: item.enable, - }); + enable: item.enable + }) if (res.success) { this.$notify({ type: "success", - message: "搴曞簱鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒", - }); + message: "搴曞簱鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒" + }) } else { this.$notify({ type: "error", - message: "搴曞簱鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒", - }); + message: "搴曞簱鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒" + }) } }, async searchImgList(faceUrl, threshold) { @@ -1133,65 +926,61 @@ faceUrl: faceUrl, threshold: threshold, orderType: this.orderType, - orderName: this.orderName, - }; - let res = await getPersonByPhoto(json); - this.tableData = res.data.datalist; - this.total = res.data.total; - this.compare = true; + orderName: this.orderName + } + let res = await getPersonByPhoto(json) + this.tableData = res.data.datalist + this.total = res.data.total + this.compare = true }, // updateThreshold() {}, async updateFace(param) { - const fd = new FormData(); - fd.append("file", param.file); - fd.append("id", this.form.id); + const fd = new FormData() + fd.append("file", param.file) + fd.append("id", this.form.id) let res = await axios({ method: "post", url: `/data/api-v/dbperson/updateFace`, headers: { Authorization: - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token, + sessionStorage.getItem("loginedInfo") && JSON.parse(sessionStorage.getItem("loginedInfo")).access_token }, - data: fd, - }); + data: fd + }) if (res.data.success) { - this.form.personPicUrl = res.data.data.personPicUrl; - this.form.faceFeature = res.data.data.faceFeature; + this.form.personPicUrl = res.data.data.personPicUrl + this.form.faceFeature = res.data.data.faceFeature } }, async deleteBatch() { - let ids = []; + let ids = [] this.selectedRowKeys.map((item, index) => { - ids.push(item.id); - }); - let res = await deleteBasePersons(ids); + ids.push(item.id) + }) + let res = await deleteBasePersons({ ids: ids }) if (res.success) { this.$notify({ type: "success", - message: "鍒犻櫎鎴愬姛锛�", - }); - this.getCarList(); + message: "鍒犻櫎鎴愬姛锛�" + }) + this.getCarList() } else { this.$notify({ type: "error", - message: "鍒犻櫎澶辫触锛�", - }); + message: "鍒犻櫎澶辫触锛�" + }) } }, async init() { - await this.BaseManageData.querySyncTables(); - await this.BaseManageData.queryLocalTables(); + await this.BaseManageData.querySyncTables() + await this.BaseManageData.queryLocalTables() if (this.baseObject.id && this.baseObject.id !== undefined) { - } else if ( - this.BaseManageData.syncTables[0].id && - this.BaseManageData.syncTables[0].id !== undefined - ) { - this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id; - this.BaseManageData.queryPersonList(); + } else if (this.BaseManageData.syncTables[0].id && this.BaseManageData.syncTables[0].id !== undefined) { + this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id + this.BaseManageData.queryPersonList() } else { - this.BaseManageData.tableId = this.BaseManageData.localTables[0].id; - this.BaseManageData.queryPersonList(); + this.BaseManageData.tableId = this.BaseManageData.localTables[0].id + this.BaseManageData.queryPersonList() } }, askDelete(typ, id) { @@ -1199,290 +988,238 @@ if (this.selectedRowKeys.length === 0) { this.$notify({ type: "warning", - message: "璇烽�夋嫨瑕佸垹闄ょ殑浜哄憳", - }); - return; + message: "璇烽�夋嫨瑕佸垹闄ょ殑杞﹁締淇℃伅" + }) + return } } - this.askDeleteShow = true; - this.delType = typ; - id && (this.toDeleteId = id); + this.askDeleteShow = true + this.delType = typ + id && (this.toDeleteId = id) }, blackAngWhite() { if (this.BaseManageData.selectBlacks.length > 0) { for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { //this.VideoPhotoData.whiteList[i].disabled = true - this.$set(this.BaseManageData.whiteList[i], "disabled", true); + this.$set(this.BaseManageData.whiteList[i], "disabled", true) } } if (this.BaseManageData.selectBlacks.length == 0) { for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { //this.VideoPhotoData.whiteList[i].disabled = false - this.$set(this.BaseManageData.whiteList[i], "disabled", false); + this.$set(this.BaseManageData.whiteList[i], "disabled", false) } } if (this.BaseManageData.selectWhites.length > 0) { for (let i = 0; i < this.BaseManageData.blackList.length; i++) { // this.VideoPhotoData.blackList[i].disabled = true - this.$set(this.BaseManageData.blackList[i], "disabled", true); + this.$set(this.BaseManageData.blackList[i], "disabled", true) } } if (this.BaseManageData.selectWhites.length == 0) { for (let i = 0; i < this.BaseManageData.blackList.length; i++) { //this.VideoPhotoData.blackList[i].disabled = false - this.$set(this.BaseManageData.blackList[i], "disabled", false); + this.$set(this.BaseManageData.blackList[i], "disabled", false) } } }, tosearch(item) { - var curWwwPath = window.document.location.href; - var pathname = window.document.location.pathname; - var pos = curWwwPath.indexOf(pathname); - var localhostPath = curWwwPath.substring(0, pos); //ip+port - var href = localhostPath + "/Layout/Searching"; - let captureId = item.id == "" ? item.personId : item.id; - var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl; - var compType = 0; - window.open( - href + - "?showType=findByPic&targetId=" + - captureId + - "&picSmUrl=" + - url + - "&compType=" + - compType - ); + var curWwwPath = window.document.location.href + var pathname = window.document.location.pathname + var pos = curWwwPath.indexOf(pathname) + var localhostPath = curWwwPath.substring(0, pos) //ip+port + var href = localhostPath + "/Layout/Searching" + let captureId = item.id == "" ? item.personId : item.id + var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl + var compType = 0 + window.open(href + "?showType=findByPic&targetId=" + captureId + "&picSmUrl=" + url + "&compType=" + compType) }, async platesBatch() { - var temp = this.plates.split(/[\n,]/g); - var reg = /[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块]{1}[A-Z]{1}[A-Z0-9]{5,6}/; + var temp = this.plates.split(/[\n,]/g) + var reg = /[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块]{1}[A-Z]{1}[A-Z0-9]{5,6}/ for (let i = 0; i < temp.length; i++) { if (temp[i] == "") { - temp.splice(i, 1); - i--; + temp.splice(i, 1) + i-- } else { if (!reg.test(temp[i])) { this.$notify({ type: "error", - message: "杞︾墝鍙�:" + temp[i] + "涓嶇鍚堣鍒欙紝璇锋鏌�!", - }); - return; + message: "杞︾墝鍙�:" + temp[i] + "涓嶇鍚堣鍒欙紝璇锋鏌�!" + }) + return } } } if (temp.length == 0) { this.$notify({ type: "error", - message: "璇疯緭鍏ヨ溅鐗屽彿", - }); - return; + message: "璇疯緭鍏ヨ溅鐗屽彿" + }) + return } let param = { tableId: this.baseObject.id, - carNos: temp, - }; - let resp = await plateBatch(param); + carNos: temp + } + let resp = await plateBatch(param) if (resp && resp.success) { // 鍒锋柊car鍒楄〃 this.$notify({ type: "success", - message: resp.msg, - }); - this.getCarList(); - this.addBatchDrawer = false; + message: resp.msg + }) + this.getCarList() + this.addBatchDrawer = false } else { this.$notify({ type: "error", - message: resp.msg, - }); + message: resp.msg + }) } }, async submitCar() { this.$refs["formForCar"].validate(async (valid) => { if (valid) { - let { ...json } = this.form; + let { ...json } = this.form for (let index in json.carUrls) { if (index == 0) { - json.carPicUrls += json.carUrls[index].url.substring(11); + json.carPicUrls += json.carUrls[index].url.substring(11) } else { - json.carPicUrls += ";" + json.carUrls[index].url.substring(11); + json.carPicUrls += ";" + json.carUrls[index].url.substring(11) } } - json.carColor = parseInt(json.carColor); - json.carType = parseInt(json.carType); - json.carBrand = parseInt(json.carBrand); - debugger - json.personPicUrl = json.faceUrl[0].url.substring(11); - json.tableId = this.baseObject.id; - delete json["compareScore"]; - let res; + json.carColor = parseInt(json.carColor) + json.carType = parseInt(json.carType) + json.carBrand = parseInt(json.carBrand) + debugger + json.personPicUrl = json.faceUrl[0].url.substring(11) + json.tableId = this.baseObject.id + delete json["compareScore"] + let res if (json.id == "") { - res = await addBaseCar(json); + res = await addBaseCar(json) } else { - res = await updateBaseCar(json); + res = await updateBaseCar(json) } if (res.success) { this.$notify({ type: "success", - message: res.data.msg, - }); - this.getCarList(); - this.addDrawer = false; + message: res.data.msg + }) + this.getCarList() + this.addDrawer = false } else { this.$notify({ type: "error", - message: res.data.msg, - }); + message: res.data.msg + }) } } else { - return false; + return false } - }); + }) }, copyClick(row) { - this.BaseManageData.personId = row.id; - this.copyVisiabled = true; + this.BaseManageData.personId = row.id + this.copyVisiabled = true }, moveClick(row) { - this.BaseManageData.personId = row.id; - this.moveVisiabled = true; + this.BaseManageData.personId = row.id + this.moveVisiabled = true }, copyClose() { - this.copyVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + this.copyVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, moveClose() { - this.moveVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + this.moveVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, copySubmit() { - if ( - this.BaseManageData.selectBlacks.length === 0 && - this.BaseManageData.selectWhites.length === 0 - ) { + if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) { this.$notify({ title: "娉ㄦ剰", message: "璇烽�夋嫨瑕佸鍒跺埌鐨勫簱", - type: "warning", - }); - return; + type: "warning" + }) + return } - var resp = this.BaseManageData.copyTo(); + var resp = this.BaseManageData.copyTo() resp.then((data) => { if (data.success) { this.$notify({ title: "鎴愬姛", message: data.data, - type: "success", - }); + type: "success" + }) } else { this.$notify({ title: "澶辫触", message: data.data, - type: "error", - }); + type: "error" + }) } - }); - this.copyVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + }) + this.copyVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, getDataName: (dataList, key) => { - let name = ""; + let name = "" if (Array.isArray(dataList) && dataList.length > 0) { for (let i = 0; i < dataList.length; i++) { if (dataList[i].value == key) { - name = dataList[i].name; + name = dataList[i].name } } } - return name; + return name }, moveSubmit() { - if ( - this.BaseManageData.selectBlacks.length === 0 && - this.BaseManageData.selectWhites.length === 0 - ) { + if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) { this.$notify({ title: "娉ㄦ剰", message: "璇烽�夋嫨瑕佺Щ鍔ㄥ埌鐨勫簱", - type: "warning", - }); - return; + type: "warning" + }) + return } - var resp = this.BaseManageData.moveTo(); + var resp = this.BaseManageData.moveTo() resp.then((data) => { if (data.success) { this.$notify({ title: "鎴愬姛", message: data.data, - type: "success", - }); + type: "success" + }) } else { this.$notify({ title: "澶辫触", message: data.data, - type: "error", - }); + type: "error" + }) } - this.moveVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; - this.BaseManageData.queryPersonList(); - }); + this.moveVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] + this.BaseManageData.queryPersonList() + }) }, setLoadSearch(fn) { - this.AuthData.setLoading("multipleTable", this); + this.AuthData.setLoading("multipleTable", this) fn.then((_) => { - this.AuthData.closeLoad(); - }); - }, - }, - mounted() { - this.getCarList(); - this.VideoPhotoData.queryDictionary(); - this.BaseManageData.queryTagList(); - this.oldWidth = document.body.clientWidth; - this.oldHeight = document.body.clientHeight; - this.blackAngWhite(); - window.onresize = () => { - let width = document.body.clientWidth; - let height = document.body.clientHeight; - if (width !== this.oldWidth && width < 1750) { - } - this.$nextTick(() => { - this.$refs.multipleTable.doLayout(); - }); - }; - this.$nextTick(() => { - this.$refs.multipleTable.doLayout(); - }); - }, - beforeDestroy() { - window.onresize = null; - }, - watch: { - baseObject: { - handler(newVal, oldVal) { - this.BaseManageData.cleanData(); - this.getCarList(); - }, - deep: true, - }, - "BaseManageData.selectBlacks": function (value) { - this.blackAngWhite(); - }, - "BaseManageData.selectWhites": function (value) { - this.blackAngWhite(); - }, - }, -}; + this.AuthData.closeLoad() + }) + } + } +} </script> <style lang="scss"> .iconStyle1 { @@ -1647,9 +1384,7 @@ display: none; } .el-table--border .el-table__cell, - .el-table__body-wrapper - .el-table--border.is-scrolling-left - ~ .el-table__fixed { + .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed { border-right: none; } td { diff --git a/src/pages/library/components/personList.vue b/src/pages/library/components/personList.vue index 6511bbb..798b7a8 100644 --- a/src/pages/library/components/personList.vue +++ b/src/pages/library/components/personList.vue @@ -4,18 +4,12 @@ <div class="base-tip"> <div class="left-tips"> <span class="ku-name">{{ this.baseObject.tableName }}</span> - <span - class="list" - :class=" - this.baseObject.bwType === '1' ? 'black-list' : 'white-list' - " - >{{ this.baseObject.bwType === "1" ? "榛戝悕鍗�" : "鐧藉悕鍗�" }}</span - > + <span class="list" :class="this.baseObject.bwType === '1' ? 'black-list' : 'white-list'">{{ + this.baseObject.bwType === "1" ? "榛戝悕鍗�" : "鐧藉悕鍗�" + }}</span> <span class="ok-time" >鏈夋晥鏃堕棿锛歿{ this.baseObject.startTime }} -- - {{ - this.baseObject.endTime ? this.baseObject.endTime : "姘镐箙鏈夋晥" - }}</span + {{ this.baseObject.endTime ? this.baseObject.endTime : "姘镐箙鏈夋晥" }}</span > </div> @@ -43,11 +37,7 @@ </el-tooltip> <el-tooltip content="缂栬緫" placement="top" popper-class="atooltip"> - <span - class="iconfont iconfont-wrap iconbianjiku-09" - @click.stop="edit" - v-if="isShow('library:set')" - ></span> + <span class="iconfont iconfont-wrap iconbianjiku-09" @click.stop="edit" v-if="isShow('library:set')"></span> </el-tooltip> </div> </div> @@ -70,14 +60,8 @@ > <upload-icon slot="suffix"></upload-icon> </el-input> - <el-button size="small" type="primary" @click="handleSearch" - >鎼滅储</el-button - > - <el-tooltip - content="鎵归噺鍒犻櫎" - placement="top" - popper-class="atooltip" - > + <el-button size="small" type="primary" @click="handleSearch">鎼滅储</el-button> + <el-tooltip content="鎵归噺鍒犻櫎" placement="top" popper-class="atooltip"> <span class="iconfont iconfont-wrap iconpiliangshanchu-09" @click="askDelete('batch')" @@ -85,11 +69,7 @@ ></span> </el-tooltip> - <el-tooltip - content="涓婁紶鐓х墖" - placement="top" - popper-class="atooltip" - > + <el-tooltip content="涓婁紶鐓х墖" placement="top" popper-class="atooltip"> <UploadBtn limitTypes=".jpg,.png,.jpeg" limitSize @@ -113,7 +93,6 @@ tooltip-effect="dark" style="width: 100%; overflow: auto" :fit="true" - row-class-name="hover-row" cell-class-name="cell-classname" @row-click="pickRow" :default-sort="{ prop: 'createTime', order: 'descending' }" @@ -123,7 +102,7 @@ background: '#fff', color: '#222222', padding: '2px 1px', - borderBottom: 'none', + borderBottom: 'none' }" > <el-table-column type="selection" width="40"></el-table-column> @@ -134,9 +113,7 @@ style="width: 84px; height: 84px; object-fit: contain" alt /> - <p class="text-center fb f16" v-show="haveScore(scope.row)"> - {{ scope.row.compareScore }}% - </p> + <p class="text-center fb f16" v-show="haveScore(scope.row)">{{ scope.row.compareScore }}%</p> </template> </el-table-column> <el-table-column label="鐢熸晥鐘舵��" min-width="70"> @@ -152,19 +129,8 @@ ></el-switch> </template> </el-table-column> - <el-table-column - prop="personName" - label="濮撳悕" - min-width="70" - show-overflow-tooltip - sortable - ></el-table-column> - <el-table-column - prop="sex" - label="鎬у埆" - min-width="60" - sortable - ></el-table-column> + <el-table-column prop="personName" label="濮撳悕" min-width="70" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="sex" label="鎬у埆" min-width="60" sortable></el-table-column> <el-table-column prop="idCard" label="韬唤璇佸彿" @@ -179,11 +145,7 @@ show-overflow-tooltip sortable ></el-table-column> - <el-table-column - prop="monitorLevel" - label="绛夌骇" - min-width="50" - ></el-table-column> + <el-table-column prop="monitorLevel" label="绛夌骇" min-width="50"></el-table-column> <el-table-column prop="createTime" label="鍏ュ簱鏃堕棿" @@ -194,11 +156,7 @@ <el-table-column label="鎿嶄綔" min-width="130"> <template slot-scope="scope"> <fTemplate authority="library:set"> - <el-tooltip - content="缂栬緫" - placement="top" - popper-class="atooltip" - > + <el-tooltip content="缂栬緫" placement="top" popper-class="atooltip"> <span class="iconfont iconbianjixinxi-09" style="font-size: 24px; cursor: pointer" @@ -206,67 +164,26 @@ ></span> </el-tooltip> </fTemplate> - <el-popover - placement="top" - trigger="click" - popper-class="popper-caozuo" - > - <el-tooltip - content="鏌ユ壘姝や汉" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconchazhaociren-09" - @click="tosearch(scope.row)" - ></span> + <el-popover placement="top" trigger="click" popper-class="popper-caozuo"> + <el-tooltip content="鏌ユ壘姝や汉" placement="top" popper-class="atooltip"> + <span class="iconfont iconchazhaociren-09" @click="tosearch(scope.row)"></span> </el-tooltip> - <el-tooltip - content="鏌ョ湅璇︽儏" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconchakanxiangqing-09" - @click="showDetail(scope.row)" - ></span> + <el-tooltip content="鏌ョ湅璇︽儏" placement="top" popper-class="atooltip"> + <span class="iconfont iconchakanxiangqing-09" @click="showDetail(scope.row)"></span> </el-tooltip> <fTemplate authority="library:set"> - <el-tooltip - content="澶嶅埗" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconfuzhi-09" - title="澶嶅埗" - @click="copyClick(scope.row)" - ></span> + <el-tooltip content="澶嶅埗" placement="top" popper-class="atooltip"> + <span class="iconfont iconfuzhi-09" title="澶嶅埗" @click="copyClick(scope.row)"></span> </el-tooltip> </fTemplate> <fTemplate authority="library:set"> - <el-tooltip - content="绉诲姩" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconyidong-09" - title="绉诲姩" - @click="moveClick(scope.row)" - ></span> + <el-tooltip content="绉诲姩" placement="top" popper-class="atooltip"> + <span class="iconfont iconyidong-09" title="绉诲姩" @click="moveClick(scope.row)"></span> </el-tooltip> </fTemplate> <fTemplate authority="library:set" class="del-wrap"> - <el-tooltip - content="鍒犻櫎" - placement="top" - popper-class="atooltip" - > - <span - class="iconfont iconshanchu-09" - @click="askDelete('single', scope.row.id)" - ></span> + <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip"> + <span class="iconfont iconshanchu-09" @click="askDelete('single', scope.row.id)"></span> </el-tooltip> </fTemplate> <span @@ -289,12 +206,7 @@ :total="BaseManageData.total" ></el-pagination> </div> - <el-dialog - title="鎶撴媿璇︽儏" - :visible.sync="cameraDetailVisible" - okText="纭畾" - custom-class="zhuapai-dialog" - > + <el-dialog title="鎶撴媿璇︽儏" :visible.sync="cameraDetailVisible" okText="纭畾" custom-class="zhuapai-dialog"> <div class="member-info"> <label class> <img src="/images/library/涓汉淇℃伅.png" alt="" srcset="" /> @@ -342,13 +254,9 @@ ></el-date-picker> </div> - <el-button size="mini" type="primary" @click="postCameraData" - >鏌ヨ</el-button - > + <el-button size="mini" type="primary" @click="postCameraData">鏌ヨ</el-button> </div> - <p style="text-align: right; font-size: 14px; color: #5f5f5f"> - 鍏眥{ faceDataCount }}鏉℃暟鎹� - </p> + <p style="text-align: right; font-size: 14px; color: #5f5f5f">鍏眥{ faceDataCount }}鏉℃暟鎹�</p> <el-table :data="cameraDetailData" @@ -359,15 +267,10 @@ background: '#fff', color: '#222222', padding: '2px 1px', - borderBottom: 'none', + borderBottom: 'none' }" > - <el-table-column - prop="faceImg" - label="鎶撴媿瀹炴櫙" - width="160" - align="center" - > + <el-table-column prop="faceImg" label="鎶撴媿瀹炴櫙" width="160" align="center"> <template slot-scope="scope"> <div> <img @@ -384,28 +287,10 @@ </div> </template> </el-table-column> - <el-table-column - prop="cameraName" - label="鎽勫儚鏈哄悕绉�" - width="100" - align="center" - ></el-table-column> - <el-table-column - prop="startTime" - label="寮�濮嬫椂闂�" - align="center" - ></el-table-column> - <el-table-column - prop="endTime" - label="缁撴潫鏃堕棿" - align="center" - ></el-table-column> - <el-table-column - prop="stayTime" - label="鍋滅暀鏃堕暱" - width="99" - align="center" - > + <el-table-column prop="cameraName" label="鎽勫儚鏈哄悕绉�" width="100" align="center"></el-table-column> + <el-table-column prop="startTime" label="寮�濮嬫椂闂�" align="center"></el-table-column> + <el-table-column prop="endTime" label="缁撴潫鏃堕棿" align="center"></el-table-column> + <el-table-column prop="stayTime" label="鍋滅暀鏃堕暱" width="99" align="center"> <template slot-scope="scope"> <span>{{ scope.row.stayTime }} 绉�</span> </template> @@ -413,21 +298,11 @@ </el-table> <div class="bot-btn"> - <el-button - size="mini" - type="primary" - @click="cameraDetailVisible = false" - >鍏抽棴</el-button - > + <el-button size="mini" type="primary" @click="cameraDetailVisible = false">鍏抽棴</el-button> </div> </el-dialog> <el-drawer title="淇敼淇℃伅" :modal="false" :visible.sync="showInfoDrawer"> - <el-form - ref="formForEdit" - :model="inputPersonForm" - label-width="100px" - :rules="rules" - > + <el-form ref="formForEdit" :model="inputPersonForm" label-width="100px" :rules="rules"> <div class="flex-center mb10"> <el-upload class="avatar-uploader" @@ -439,11 +314,7 @@ :on-error="uploadError" > <div class="mask1"> - <div - slot="trigger" - class="flex-center" - style="position: absolute; top: 70px" - > + <div slot="trigger" class="flex-center" style="position: absolute; top: 70px"> <p style=" background: rgba(0, 0, 0, 0.35); @@ -474,48 +345,27 @@ <el-row> <el-col :span="20"> <el-form-item label="ID" style="width: 100%; margin-bottom: 20px"> - <el-input - size="small" - v-model="inputPersonForm.id" - disabled - placeholder="璇疯緭鍏�" - ></el-input> + <el-input size="small" v-model="inputPersonForm.id" disabled placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="鐓х墖鏍囪瘑" - prop="picDesc" - style="width: 100%; margin-bottom: 20px" - > - <el-input - size="small" - v-model="inputPersonForm.picDesc" - placeholder="璇疯緭鍏�" - ></el-input> + <el-form-item label="鐓х墖鏍囪瘑" prop="picDesc" style="width: 100%; margin-bottom: 20px"> + <el-input size="small" v-model="inputPersonForm.picDesc" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> <el-form-item label="濮撳悕" style="width: 100%; margin-bottom: 20px"> - <el-input - size="small" - v-model="inputPersonForm.personName" - placeholder="璇疯緭鍏�" - ></el-input> + <el-input size="small" v-model="inputPersonForm.personName" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="鎬у埆" - prop="sex" - style="width: 100%; margin-bottom: 20px; text-align: left" - > + <el-form-item label="鎬у埆" prop="sex" style="width: 100%; margin-bottom: 20px; text-align: left"> <el-radio-group v-model="inputPersonForm.sex" class="mt10"> <el-radio label="鐢�"></el-radio> <el-radio label="濂�"></el-radio> @@ -525,47 +375,22 @@ </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="韬唤璇佸彿" - prop="idCard" - style="width: 100%; margin-bottom: 20px" - > - <el-input - size="small" - v-model="inputPersonForm.idCard" - placeholder="璇疯緭鍏�" - ></el-input> + <el-form-item label="韬唤璇佸彿" prop="idCard" style="width: 100%; margin-bottom: 20px"> + <el-input size="small" v-model="inputPersonForm.idCard" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="鎵嬫満鍙�" - prop="phoneNum" - style="width: 100%; margin-bottom: 20px" - > - <el-input - size="small" - v-model="inputPersonForm.phoneNum" - placeholder="璇疯緭鍏�" - ></el-input> + <el-form-item label="鎵嬫満鍙�" prop="phoneNum" style="width: 100%; margin-bottom: 20px"> + <el-input size="small" v-model="inputPersonForm.phoneNum" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="浜哄憳绛夌骇" - prop="monitorLevel" - style="width: 100%; margin-bottom: 20px" - > - <el-select - size="small" - v-model="inputPersonForm.monitorLevel" - placeholder="璇烽�夋嫨" - style="width: 100%" - > + <el-form-item label="浜哄憳绛夌骇" prop="monitorLevel" style="width: 100%; margin-bottom: 20px"> + <el-select size="small" v-model="inputPersonForm.monitorLevel" placeholder="璇烽�夋嫨" style="width: 100%"> <el-option v-for="item in VideoPhotoData.dictionary.MONITORLEVEL" :key="item.value" @@ -578,68 +403,33 @@ </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="鍏ュ簱浣嶇疆" - style="width: 100%; margin-bottom: 20px" - > - <el-input - size="small" - v-model="inputPersonForm.fromServerId" - disabled - ></el-input> + <el-form-item label="鍏ュ簱浣嶇疆" style="width: 100%; margin-bottom: 20px"> + <el-input size="small" v-model="inputPersonForm.fromServerId" disabled></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> - <el-form-item - label="鍏ュ簱鏃堕棿" - style="width: 100%; margin-bottom: 20px" - > - <el-input - size="small" - v-model="inputPersonForm.createTime" - disabled - ></el-input> + <el-form-item label="鍏ュ簱鏃堕棿" style="width: 100%; margin-bottom: 20px"> + <el-input size="small" v-model="inputPersonForm.createTime" disabled></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="20"> <el-form-item label="鍏朵粬" style="width: 100%; margin-bottom: 20px"> - <el-input - size="small" - v-model="inputPersonForm.reserved" - placeholder="璇疯緭鍏�" - ></el-input> + <el-input size="small" v-model="inputPersonForm.reserved" placeholder="璇疯緭鍏�"></el-input> </el-form-item> </el-col> </el-row> </el-form> <div class="dialog-footer"> <!-- {{BaseManageData.personList[1].idCard}} --> - <el-button - size="small" - class="cancel-btn" - @click="handleClose" - type="info" - >鍙栨秷</el-button - > - <el-button - size="small" - class="sure-btn" - type="primary" - @click="submit" - >纭畾</el-button - > + <el-button size="small" class="cancel-btn" @click="handleClose" type="info">鍙栨秷</el-button> + <el-button size="small" class="sure-btn" type="primary" @click="submit">纭畾</el-button> </div> </el-drawer> - <el-dialog - :visible.sync="dialogVisible" - :close="getPersonList" - :center="true" - custom-class="suc-dialog" - > + <el-dialog :visible.sync="dialogVisible" :close="getPersonList" :center="true" custom-class="suc-dialog"> <div> <div class="suc-icon"> <i class="iconfont iconduigou3"></i> @@ -650,51 +440,31 @@ </div> <div class="flex-box mt10"> <span>涓婁紶澶辫触鐨勬暟閲忥細{{ uploadResult.failList.length }}</span> - <div - class="ml20" - v-for="(i, index) in uploadResult.failList" - :key="index" - > + <div class="ml20" v-for="(i, index) in uploadResult.failList" :key="index"> {{ i }} </div> </div> <div class="flex-box mt10"> - <span - >鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{ - uploadResult.multiFaceList.length - }}</span - > - <div - class="ml20" - v-for="(i, index) in uploadResult.multiFaceList" - :key="index" - > + <span>鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.multiFaceList.length }}</span> + <div class="ml20" v-for="(i, index) in uploadResult.multiFaceList" :key="index"> {{ i }} </div> </div> <div class="flex-box mt10"> <span>涓嶅惈浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.noFaceList.length }}</span> - <div - class="ml20" - v-for="(i, index) in uploadResult.noFaceList" - :key="index" - > + <div class="ml20" v-for="(i, index) in uploadResult.noFaceList" :key="index"> {{ i }} </div> </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="dialogVisible = false" - >纭� 瀹�</el-button - > + <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog - :visible.sync="askDeleteShow" - :center="true" - custom-class="del-dialog" - > + + <!-- 纭鍒犻櫎瀵硅瘽妗� --> + <el-dialog :visible.sync="askDeleteShow" :center="true" custom-class="del-dialog"> <div> <div class="suc-icon"> <i class="iconfont icongantanhao1"></i> @@ -706,42 +476,27 @@ </div> <span slot="footer" class="dialog-footer"> <el-button @click="askDeleteShow = false">鍙� 娑�</el-button> - <el-button type="primary" @click="handleDel">纭� 瀹�</el-button> + <el-button type="primary" @click="handleDel" :loading="delBtnLoading">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog - title="澶嶅埗鍒�" - :visible.sync="copyVisiabled" - okText="淇濆瓨" - custom-class="copy-dialog" - cancelText="鍙栨秷" - > + + <el-dialog title="澶嶅埗鍒�" :visible.sync="copyVisiabled" okText="淇濆瓨" custom-class="copy-dialog" cancelText="鍙栨秷"> <div class="addToBase1"> <div class="items" v-if="baseObject.bwType === '1'"> <div class="lable"> <p>榛戝悕鍗�</p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectBlacks" - @change="blackAngWhite" - > + <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite"> <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index" - :class=" - BaseManageData.selectBlacks.includes(item.value) - ? 'white-wrap' - : '' - " + :class="BaseManageData.selectBlacks.includes(item.value) ? 'white-wrap' : ''" > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -751,26 +506,16 @@ <p>鐧藉悕鍗�</p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectWhites" - @change="blackAngWhite" - > + <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite"> <div class="base" - :class=" - BaseManageData.selectWhites.includes(item.value) - ? 'white-wrap' - : '' - " + :class="BaseManageData.selectWhites.includes(item.value) ? 'white-wrap' : ''" v-for="(item, index) in BaseManageData.whiteList" :key="index" > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -778,46 +523,27 @@ </div> <div slot="footer" class="dialog-footer"> <el-button size="small" @click="copyClose" type="info">鍙� 娑�</el-button> - <el-button size="small" type="primary" @click="copySubmit()" - >纭� 瀹�</el-button - > + <el-button size="small" type="primary" @click="copySubmit()">纭� 瀹�</el-button> </div> </el-dialog> - <el-dialog - title="绉诲姩鑷�" - :visible.sync="moveVisiabled" - okText="淇濆瓨" - custom-class="copy-dialog" - cancelText="鍙栨秷" - > + <el-dialog title="绉诲姩鑷�" :visible.sync="moveVisiabled" okText="淇濆瓨" custom-class="copy-dialog" cancelText="鍙栨秷"> <div class="addToBase1"> <div class="items"> <div class="lable"> <p>榛戝悕鍗�</p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectBlacks" - @change="blackAngWhite" - :max="1" - > + <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite" :max="1"> <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index" - :class=" - BaseManageData.selectBlacks.includes(item.value) - ? 'white-wrap' - : '' - " + :class="BaseManageData.selectBlacks.includes(item.value) ? 'white-wrap' : ''" > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -827,27 +553,16 @@ <p>鐧藉悕鍗�</p> </div> <div class="baseList"> - <el-checkbox-group - v-model="BaseManageData.selectWhites" - @change="blackAngWhite" - :max="1" - > + <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite" :max="1"> <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index" - :class=" - BaseManageData.selectWhites.includes(item.value) - ? 'white-wrap' - : '' - " + :class="BaseManageData.selectWhites.includes(item.value) ? 'white-wrap' : ''" > - <el-checkbox - :label="item.value" - :title="item.title" - :disabled="item.disabled" - >{{ item.title }}</el-checkbox - > + <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{ + item.title + }}</el-checkbox> </div> </el-checkbox-group> </div> @@ -855,9 +570,7 @@ </div> <div slot="footer" class="dialog-footer"> <el-button size="small" @click="moveClose" type="info">鍙� 娑�</el-button> - <el-button size="small" type="primary" @click="moveSubmit()" - >纭� 瀹�</el-button - > + <el-button size="small" type="primary" @click="moveSubmit()">纭� 瀹�</el-button> </div> </el-dialog> </div> @@ -867,27 +580,29 @@ updateBasePerson, deleteBasePersons, updateDbTableStatus, -} from "@/api/baseLibrary"; -import { getCameraFaceData } from "@/api/es"; + deleteDbPersonById, + deleteDBtablesById +} from "@/api/baseLibrary" +import { getCameraFaceData } from "@/api/es" // import { checkIDCard } from "@/api/utils"; -import { isIDCard } from "../../../scripts/validate"; +import { isIDCard } from "../../../scripts/validate" -import axios from "axios"; -import UploadBtn from "./upload"; -import fTemplate from "@/components/fTemplate"; -import UploadIcon from "@/components/searching/UploadIcon.vue"; +import axios from "axios" +import UploadBtn from "./upload" +import fTemplate from "@/components/fTemplate" +import UploadIcon from "@/components/searching/UploadIcon.vue" function isPhone(rule, value, callback) { - if (!value) { - return callback(); - } else if (value.trim()) { - var pattern = /^1[345789]\d{9}$/; - if (pattern.test(value)) { - return callback(); - } - return callback(new Error("杈撳叆鐨勬墜鏈哄彿閿欒")); - } + if (!value) { + return callback() + } else if (value.trim()) { + var pattern = /^1[345789]\d{9}$/ + if (pattern.test(value)) { + return callback() } -Date.prototype.Format = function (fmt) { + return callback(new Error("杈撳叆鐨勬墜鏈哄彿閿欒")) + } +} +Date.prototype.Format = function(fmt) { var o = { "M+": this.getMonth() + 1, //鏈堜唤 "d+": this.getDate(), //鏃� @@ -895,34 +610,59 @@ "m+": this.getMinutes(), //鍒� "s+": this.getSeconds(), //绉� "q+": Math.floor((this.getMonth() + 3) / 3), //瀛e害 - S: this.getMilliseconds(), //姣 - }; - if (/(y+)/.test(fmt)) - fmt = fmt.replace( - RegExp.$1, - (this.getFullYear() + "").substr(4 - RegExp.$1.length) - ); + S: this.getMilliseconds() //姣 + } + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)) for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) - fmt = fmt.replace( - RegExp.$1, - RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length) - ); - return fmt; -}; + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)) + return fmt +} export default { + components: { + UploadBtn, + fTemplate, + UploadIcon + }, + props: { + baseObject: { + default: () => {}, + type: Object + }, + syncType: { + type: String + } + }, + computed: { + isAdmin() { + if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") { + let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username + return loginName === "superadmin" || loginName === "basic" + } + return false + }, + delText() { + switch (this.delType) { + case "base": + return ["鍒犻櫎搴曞簱", "纭畾鍒犻櫎璇ュ簳搴擄紵"] + case "single": + return ["鍒犻櫎浜哄憳", "纭畾鍒犻櫎璇ュ簳搴撲汉鍛橈紵"] + case "batch": + return ["鎵归噺鍒犻櫎", "纭畾鍒犻櫎璇ュ簳搴撻�変腑浜哄憳锛�"] + default: + return ["", ""] + } + } + }, data() { return { - timeRange: [ - new Date(2020, 7, 25, 8), - new Date(new Date().setHours(23, 59, 59)), - ], + timeRange: [new Date(2020, 7, 25, 8), new Date(new Date().setHours(23, 59, 59))], memberInfo: { personName: "", sex: "", idCard: "", - reserved: "", + reserved: "" }, askDeleteShow: false, toDeleteId: "", @@ -930,7 +670,7 @@ startTime: new Date(2020, 7, 25, 8).Format("yyyy-MM-dd HH:mm:ss"), endTime: new Date().Format("yyyy-MM-dd HH:mm:ss"), thresholdTime: 10, - faceId: [], + faceId: [] }, cameraDetailData: [], cameraDetailVisible: false, @@ -950,15 +690,11 @@ selectedRowKeys: [], inputPersonForm: {}, rules: { - picDesc: [ - { required: true, message: "璇疯緭鍏ョ収鐗囨爣璇�", trigger: "change" }, - ], + picDesc: [{ required: true, message: "璇疯緭鍏ョ収鐗囨爣璇�", trigger: "change" }], sex: [{ required: true, message: "璇峰嬀閫夋�у埆", trigger: "change" }], idCard: [{ validator: isIDCard, trigger: "blur" }], phoneNum: [{ validator: isPhone, trigger: "blur" }], - monitorLevel: [ - { required: true, message: "璇烽�夋嫨浜哄憳绛夌骇", trigger: "change" }, - ], + monitorLevel: [{ required: true, message: "璇烽�夋嫨浜哄憳绛夌骇", trigger: "change" }] }, tableData: [], oldWidth: "", @@ -972,71 +708,55 @@ failList: [], successList: [], multiFaceList: [], - noFaceList: [], + noFaceList: [] }, - }; + delBtnLoading: false + } }, - computed: { - isAdmin() { - if ( - sessionStorage.getItem("userInfo") && - sessionStorage.getItem("userInfo") !== "" - ) { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; - return loginName === "superadmin" || loginName === "basic"; - } - return false; + + watch: { + "BaseManageData.selectBlacks": function(value) { + this.blackAngWhite() }, - delText() { - switch (this.delType) { - case "base": - return ["鍒犻櫎搴曞簱", "纭畾鍒犻櫎璇ュ簳搴擄紵"]; - case "single": - return ["鍒犻櫎浜哄憳", "纭畾鍒犻櫎璇ュ簳搴撲汉鍛橈紵"]; - case "batch": - return ["鎵归噺鍒犻櫎", "纭畾鍒犻櫎璇ュ簳搴撻�変腑浜哄憳锛�"]; - default: - return ["", ""]; - } - }, + "BaseManageData.selectWhites": function(value) { + this.blackAngWhite() + } }, methods: { postCameraData() { getCameraFaceData(this.reqCameraParams).then((res) => { if (res && res.rtnCode == 1) { - this.cameraDetailData = res.rtnData; - this.faceDataCount = res.rtnData.length; + this.cameraDetailData = res.rtnData + this.faceDataCount = res.rtnData.length } - }); + }) }, timeChange(val) { - this.reqCameraParams.startTime = val[0]; - this.reqCameraParams.endTime = val[1]; + this.reqCameraParams.startTime = val[0] + this.reqCameraParams.endTime = val[1] }, showDetail(row) { - this.cameraDetailData = []; - this.memberInfo.reserved = row.reserved; - this.memberInfo.idCard = row.idCard; - this.memberInfo.personName = row.personName; - this.memberInfo.sex = row.sex; - this.reqCameraParams.faceId = row.id; - this.cameraDetailVisible = true; + this.cameraDetailData = [] + this.memberInfo.reserved = row.reserved + this.memberInfo.idCard = row.idCard + this.memberInfo.personName = row.personName + this.memberInfo.sex = row.sex + this.reqCameraParams.faceId = row.id + this.cameraDetailVisible = true }, isShow(authority) { - return ( - this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 - ); + return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 }, pickRow(row, column, event) { - this.$refs.multipleTable.toggleRowSelection(row); + this.$refs.multipleTable.toggleRowSelection(row) }, toggleSelection(rows) { if (rows) { rows.forEach((row) => { - this.$refs.multipleTable.toggleRowSelection(row); - }); + this.$refs.multipleTable.toggleRowSelection(row) + }) } else { - this.$refs.multipleTable.clearSelection(); + this.$refs.multipleTable.clearSelection() } }, askDelete(typ, id) { @@ -1045,166 +765,155 @@ this.$notify({ type: "warning", message: "璇烽�夋嫨瑕佸垹闄ょ殑浜哄憳", - duration: 1000000, - }); - return; + duration: 1000000 + }) + return } } - this.askDeleteShow = true; - this.delType = typ; - id && (this.toDeleteId = id); + this.askDeleteShow = true + this.delType = typ + id && (this.toDeleteId = id) }, - deleteThis() { - let token = - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; - - fetch(`/data/api-v/dbperson/deleteDbPersonById?id=${this.toDeleteId}`, { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: token, - }, - }) - .then((res) => { - return res.json(); - }) - .then((data) => { - if (data.success) { - this.$notify({ - type: "success", - message: "璇ヤ汉鍛樺垹闄ゆ垚鍔燂紒", - }); - this.askDeleteShow = false; - } - this.getPersonList(); - }) - .catch((err) => {}); - }, - sayHello() {}, getUploadResult(result) { - this.uploadResult = result.data; - this.dialogVisible = true; - this.getPersonList(); + this.uploadResult = result.data + this.dialogVisible = true + this.getPersonList() }, async setEnable(item) { let res = await updateDbTableStatus({ id: item.id, - enable: item.enable, - }); + enable: item.enable + }) if (res.success) { this.$notify({ type: "success", - message: "搴曞簱鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒", - }); + message: "搴曞簱鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒" + }) } else { this.$notify({ type: "error", - message: "搴曞簱鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒", - }); + message: "搴曞簱鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒" + }) } }, isDisabled(item) { - var flag = true; + var flag = true if (this.isShow("library:set")) { if (item.endTime == "") { - flag = false; + flag = false } else { - flag = !this.$moment(new Date()).isBetween( - item.startTime, - item.endTime - ); + flag = !this.$moment(new Date()).isBetween(item.startTime, item.endTime) } } - return flag; + return flag }, edit() { - this.$emit("changeShow", this.baseObject, this.syncType); + this.$emit("changeShow", this.baseObject, this.syncType) + }, + + deleteThis() { + deleteDbPersonById({ id: this.toDeleteId }) + .then((data) => { + if (data.success) { + this.$notify({ + type: "success", + message: "璇ヤ汉鍛樺垹闄ゆ垚鍔燂紒" + }) + } + this.getPersonList() + }) + .catch((err) => {}) }, deleteBase() { - let token = - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; - fetch(`/data/api-v/dbtable/deleteDBtablesById?id=${this.baseObject.id}`, { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: token, - }, - }) - .then((res) => { - return res.json(); - }) + deleteDBtablesById({ id: this.baseObject.id }) .then((res) => { if (res.success) { this.$notify({ type: "success", - message: "搴曞簱鍒犻櫎鎴愬姛锛�", - }); + message: "搴曞簱鍒犻櫎鎴愬姛锛�" + }) } - this.askDeleteShow=false - this.$emit("onDelete"); + this.$emit("onDelete") }) .catch((err) => { this.$notify({ type: "error", - message: err, - }); - }); + message: err + }) + }) + }, + async deleteBatch() { + let ids = [] + this.selectedRowKeys.map((item, index) => { + ids.push(item.id) + }) + let res = await deleteBasePersons({ ids: ids }) + if (res.success) { + this.$notify({ + type: "success", + message: "鍒犻櫎鎴愬姛锛�" + }) + this.getPersonList() + } else { + this.$notify({ + type: "error", + message: "鍒犻櫎澶辫触锛�" + }) + } }, async getPersonList() { this.$nextTick(() => { if (this.baseObject.id && this.baseObject.id !== undefined) { - this.BaseManageData.tableId = this.baseObject.id; - this.setLoadSearch(this.BaseManageData.queryPersonList()); + this.BaseManageData.tableId = this.baseObject.id + this.setLoadSearch(this.BaseManageData.queryPersonList()) } - }); + }) }, changeDialog(data) { data.erFileList.map((item, index) => { this.$notify({ type: "error", - message: item.errorMsg.message, - }); - }); + message: item.errorMsg.message + }) + }) }, handleClose() { - this.showInfoDrawer = false; + this.showInfoDrawer = false }, handleSelectionChange(val) { - this.selectedRowKeys = val; + this.selectedRowKeys = val }, refrash(current, pageSize) { - this.current = current; - this.BaseManageData.page = current; - this.getPersonList(); + this.current = current + this.BaseManageData.page = current + this.getPersonList() }, handleSizeChange(val) { - this.BaseManageData.size = val; - this.getPersonList(); + this.BaseManageData.size = val + this.getPersonList() }, editRow(row) { - this.inputPersonForm = { ...row }; - this.showInfoDrawer = true; + this.inputPersonForm = { ...row } + this.showInfoDrawer = true }, async submit() { this.$refs["formForEdit"].validate(async (valid) => { if (valid) { - let { ...json } = this.inputPersonForm; - delete json["compareScore"]; - let res = await updateBasePerson(json); + let { ...json } = this.inputPersonForm + delete json["compareScore"] + let res = await updateBasePerson(json) if (res.success) { this.getPersonList() - this.$notify.success("浜哄憳淇敼鎴愬姛锛�"); - this.showInfoDrawer = false; + this.$notify.success("浜哄憳淇敼鎴愬姛锛�") + this.showInfoDrawer = false } else { - this.$notify.error("浜哄憳淇敼澶辫触锛岃閲嶈瘯锛�"); + this.$notify.error("浜哄憳淇敼澶辫触锛岃閲嶈瘯锛�") } } else { - return false; + return false } - }); + }) }, async enable(item) { let res = await updateBasePerson({ @@ -1217,40 +926,44 @@ phoneNum: item.phoneNum, monitorLevel: item.monitorLevel, personPicUrl: item.personPicUrl, - reserved: item.reserved, - }); + reserved: item.reserved + }) if (res.success === true) { this.$notify({ type: "success", - message: "搴曞簱浜哄憳鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒", - }); + message: "搴曞簱浜哄憳鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒" + }) } else { this.$notify({ type: "error", - message: "搴曞簱浜哄憳鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒", - }); + message: "搴曞簱浜哄憳鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒" + }) } }, handleSearch() { - this.getPersonList(); + this.getPersonList() }, - handleDel() { + async handleDel() { + this.delBtnLoading = true if (this.delType == "single") { - this.deleteThis(); + await this.deleteThis() } else if (this.delType == "base") { - this.deleteBase(); + await this.deleteBase() } else if (this.delType == "batch") { - this.deleteBatch(); + await this.deleteBatch() } + + this.delBtnLoading = false + this.askDeleteShow = false }, searchImg() { - this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart(); + this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart() }, haveScore(row) { if (row.compareScore && row.compareScore !== "") { - return true; + return true } else { - return false; + return false } }, async searchImgList(faceUrl, threshold) { @@ -1261,262 +974,199 @@ faceUrl: faceUrl, threshold: threshold, orderType: this.orderType, - orderName: this.orderName, - }; - let res = await getPersonByPhoto(json); - this.tableData = res.data.datalist; - this.total = res.data.total; - this.compare = true; + orderName: this.orderName + } + let res = await getPersonByPhoto(json) + this.tableData = res.data.datalist + this.total = res.data.total + this.compare = true }, updateThreshold() {}, async updateFace(param) { - const fd = new FormData(); - fd.append("file", param.file); - fd.append("id", this.inputPersonForm.id); + const fd = new FormData() + fd.append("file", param.file) + fd.append("id", this.inputPersonForm.id) let res = await axios({ method: "post", url: `/data/api-v/dbperson/updateFace`, headers: { Authorization: - sessionStorage.getItem("loginedInfo") && - JSON.parse(sessionStorage.getItem("loginedInfo")).access_token, + sessionStorage.getItem("loginedInfo") && JSON.parse(sessionStorage.getItem("loginedInfo")).access_token }, - data: fd, - }); + data: fd + }) if (res.data.success) { - this.inputPersonForm.persoasyncnPicUrl = res.data.data.personPicUrl; - this.inputPersonForm.faceFeature = res.data.data.faceFeature; + this.inputPersonForm.persoasyncnPicUrl = res.data.data.personPicUrl + this.inputPersonForm.faceFeature = res.data.data.faceFeature } }, uploadSuccess() {}, uploadError() {}, - async deleteBatch() { - let ids = []; - this.selectedRowKeys.map((item, index) => { - ids.push(item.id); - }); - let res = await deleteBasePersons(ids); - if (res.success) { - this.$notify({ - type: "success", - message: "鍒犻櫎鎴愬姛锛�", - }); - this.getPersonList(); - } else { - this.$notify({ - type: "error", - message: "鍒犻櫎澶辫触锛�", - }); - } - }, async init() { - await this.BaseManageData.querySyncTables(); - await this.BaseManageData.queryLocalTables(); + await this.BaseManageData.querySyncTables() + await this.BaseManageData.queryLocalTables() if (this.baseObject.id && this.baseObject.id !== undefined) { - } else if ( - this.BaseManageData.syncTables[0].id && - this.BaseManageData.syncTables[0].id !== undefined - ) { - this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id; - this.BaseManageData.queryPersonList(); + } else if (this.BaseManageData.syncTables[0].id && this.BaseManageData.syncTables[0].id !== undefined) { + this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id + this.BaseManageData.queryPersonList() } else { - this.BaseManageData.tableId = this.BaseManageData.localTables[0].id; - this.BaseManageData.queryPersonList(); + this.BaseManageData.tableId = this.BaseManageData.localTables[0].id + this.BaseManageData.queryPersonList() } }, blackAngWhite() { if (this.BaseManageData.selectBlacks.length > 0) { for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { //this.VideoPhotoData.whiteList[i].disabled = true - this.$set(this.BaseManageData.whiteList[i], "disabled", true); + this.$set(this.BaseManageData.whiteList[i], "disabled", true) } } if (this.BaseManageData.selectBlacks.length == 0) { for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { //this.VideoPhotoData.whiteList[i].disabled = false - this.$set(this.BaseManageData.whiteList[i], "disabled", false); + this.$set(this.BaseManageData.whiteList[i], "disabled", false) } } if (this.BaseManageData.selectWhites.length > 0) { for (let i = 0; i < this.BaseManageData.blackList.length; i++) { // this.VideoPhotoData.blackList[i].disabled = true - this.$set(this.BaseManageData.blackList[i], "disabled", true); + this.$set(this.BaseManageData.blackList[i], "disabled", true) } } if (this.BaseManageData.selectWhites.length == 0) { for (let i = 0; i < this.BaseManageData.blackList.length; i++) { //this.VideoPhotoData.blackList[i].disabled = false - this.$set(this.BaseManageData.blackList[i], "disabled", false); + this.$set(this.BaseManageData.blackList[i], "disabled", false) } } }, tosearch(item) { //let captureId = item.id == "" ? item.baseInfo[0].targetId : item.id - let captureId = item.id == "" ? item.personId : item.id; - let imgUrl = item.personPicUrl ? item.personPicUrl : item.personPicUrl; - let compType = 0; + let captureId = item.id == "" ? item.personId : item.id + let imgUrl = item.personPicUrl ? item.personPicUrl : item.personPicUrl + let compType = 0 let message = - "toSearch?showType=findByPic&targetId=" + - captureId + - "&picSmUrl=" + - imgUrl + - "&compType=" + - compType; + "toSearch?showType=findByPic&targetId=" + captureId + "&picSmUrl=" + imgUrl + "&compType=" + compType window.parent.postMessage( { - msg: message, + msg: message }, "*" - ); + ) }, copyClick(row) { - this.BaseManageData.personId = row.id; - this.copyVisiabled = true; + this.BaseManageData.personId = row.id + this.copyVisiabled = true }, moveClick(row) { - this.BaseManageData.personId = row.id; - this.moveVisiabled = true; + this.BaseManageData.personId = row.id + this.moveVisiabled = true }, copyClose() { - this.copyVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + this.copyVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, moveClose() { - this.moveVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + this.moveVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, copySubmit() { - if ( - this.BaseManageData.selectBlacks.length === 0 && - this.BaseManageData.selectWhites.length === 0 - ) { + if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) { this.$notify({ title: "娉ㄦ剰", message: "璇烽�夋嫨瑕佸鍒跺埌鐨勫簱", - type: "warning", - }); - return; + type: "warning" + }) + return } - var resp = this.BaseManageData.copyTo(); + var resp = this.BaseManageData.copyTo() resp.then((data) => { if (data.success) { this.$notify({ title: "鎴愬姛", message: data.data, - type: "success", - }); + type: "success" + }) } else { this.$notify({ title: "澶辫触", message: data.data, - type: "error", - }); + type: "error" + }) } - }); - this.copyVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; + }) + this.copyVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] }, moveSubmit() { - if ( - this.BaseManageData.selectBlacks.length === 0 && - this.BaseManageData.selectWhites.length === 0 - ) { + if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) { this.$notify({ title: "娉ㄦ剰", message: "璇烽�夋嫨瑕佺Щ鍔ㄥ埌鐨勫簱", - type: "warning", - }); - return; + type: "warning" + }) + return } - var resp = this.BaseManageData.moveTo(); + var resp = this.BaseManageData.moveTo() resp.then((data) => { if (data.success) { this.$notify({ title: "鎴愬姛", message: data.data, - type: "success", - }); + type: "success" + }) } else { this.$notify({ title: "澶辫触", message: data.data, - type: "error", - }); + type: "error" + }) } - this.moveVisiabled = false; - this.BaseManageData.personId = ""; - this.BaseManageData.selectBlacks = []; - this.BaseManageData.selectWhites = []; - this.BaseManageData.queryPersonList(); - }); + this.moveVisiabled = false + this.BaseManageData.personId = "" + this.BaseManageData.selectBlacks = [] + this.BaseManageData.selectWhites = [] + this.BaseManageData.queryPersonList() + }) }, setLoadSearch(fn) { - this.AuthData.setLoading("multipleTable", this); + this.AuthData.setLoading("multipleTable", this) fn.then((_) => { - this.AuthData.closeLoad(); - }); - }, + this.AuthData.closeLoad() + }) + } }, mounted() { - this.getPersonList(); - this.VideoPhotoData.queryDictionary(); - this.BaseManageData.queryTagList(); - this.oldWidth = document.body.clientWidth; - this.oldHeight = document.body.clientHeight; - this.blackAngWhite(); + this.getPersonList() + this.VideoPhotoData.queryDictionary() + this.BaseManageData.queryTagList() + this.oldWidth = document.body.clientWidth + this.oldHeight = document.body.clientHeight + this.blackAngWhite() window.onresize = () => { - let width = document.body.clientWidth; - let height = document.body.clientHeight; + let width = document.body.clientWidth + let height = document.body.clientHeight if (width !== this.oldWidth && width < 1750) { } this.$nextTick(() => { - this.$refs.multipleTable.doLayout(); - }); - }; + this.$refs.multipleTable.doLayout() + }) + } this.$nextTick(() => { - this.$refs.multipleTable.doLayout(); - }); + this.$refs.multipleTable.doLayout() + }) }, beforeDestroy() { - window.onresize = null; - }, - watch: { - baseObject: { - handler(newVal, oldVal) { - this.BaseManageData.cleanData(); - this.getPersonList(); - }, - deep: true, - }, - "BaseManageData.selectBlacks": function (value) { - this.blackAngWhite(); - }, - "BaseManageData.selectWhites": function (value) { - this.blackAngWhite(); - }, - }, - components: { - UploadBtn, - fTemplate, - UploadIcon, - }, - props: { - baseObject: { - default: () => {}, - type: Object, - }, - syncType: { - type: String, - }, - }, -}; + window.onresize = null + } +} </script> <style lang="scss"> .activeRow { @@ -1763,8 +1413,7 @@ padding-top: 2px; left: 15px; } - .el-form-item.is-required:not(.is-no-asterisk) - > .el-form-item__label:before { + .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before { color: #fe6d68; } .el-col-20 { @@ -1815,9 +1464,7 @@ display: none; } .el-table--border .el-table__cell, - .el-table__body-wrapper - .el-table--border.is-scrolling-left - ~ .el-table__fixed { + .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed { border-right: none; } td { diff --git a/src/pages/library/index/App.vue b/src/pages/library/index/App.vue index 29a1271..a56c999 100644 --- a/src/pages/library/index/App.vue +++ b/src/pages/library/index/App.vue @@ -47,30 +47,30 @@ </div> </template> <script> -import baseList from "../components/baseList"; -import addBase from "../components/addBase"; -import personList from "../components/personList"; -import carList from "../components/carList"; -const colorRgb = function (s) { - var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - var color = s.toLowerCase(); +import baseList from "../components/baseList" +import addBase from "../components/addBase" +import personList from "../components/personList" +import carList from "../components/carList" +const colorRgb = function(s) { + var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ + var color = s.toLowerCase() if (reg.test(color)) { if (color.length === 4) { - var colorNew = "#"; + var colorNew = "#" for (var i = 1; i < 4; i += 1) { - colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1)); + colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1)) } - color = colorNew; + color = colorNew } - var colorChange = []; + var colorChange = [] for (var i = 1; i < 7; i += 2) { - colorChange.push(parseInt("0x" + color.slice(i, i + 2))); + colorChange.push(parseInt("0x" + color.slice(i, i + 2))) } - return "" + colorChange.join(",") + ""; + return "" + colorChange.join(",") + "" } else { - return color; + return color } -}; +} export default { data() { return { @@ -86,94 +86,92 @@ { name: "搴曞簱绠$悊", path: "/baseManage", - params: {}, + params: {} }, { name: "搴曞簱璇︽儏", path: "/baseManage", - params: {}, - }, - ], - }; + params: {} + } + ] + } }, methods: { getPersonList(item, type) { - this.baseObject = item; - this.baseForEdit = item; - this.syncType = type; + this.baseObject = item + this.baseForEdit = item + this.syncType = type + // 鐩存帴璋冪敤瀛愮粍浠跺埛鏂板垪琛ㄧ殑鏂规硶 // 鍒ゆ柇杩欐槸浜哄憳搴撹繕鏄溅杈嗗簱锛屽喅瀹歴howList鐨勫�� - if (item.tableType == "person") { - this.showType = "person"; - this.$refs.personList.getPersonList(); - } else if (item.tableType == "car") { - this.showType = "car"; - this.$refs.carList.getCarList(); - } - this.breeadCrumb[1].name = "搴曞簱璇︽儏"; + this.$nextTick(() => { + if (item.tableType == "person") { + this.showType = "person" + this.$refs.personList.getPersonList() + } else if (item.tableType == "car") { + this.showType = "car" + this.$refs.carList.getCarList() + } + }) + this.breeadCrumb[1].name = "搴曞簱璇︽儏" }, changeToAdd(item, type) { if (item !== null) { - this.baseForEdit = item; - this.breeadCrumb[1].name = "搴曞簱淇℃伅"; + this.baseForEdit = item + this.breeadCrumb[1].name = "搴曞簱淇℃伅" } else { - this.baseForEdit = {}; - this.breeadCrumb[1].name = "娣诲姞搴曞簱"; + this.baseForEdit = {} + this.breeadCrumb[1].name = "娣诲姞搴曞簱" } - this.syncType = type; - this.showList = false; + this.syncType = type + this.showList = false }, initBaseList() { - this.$refs.baseSync.init(); + this.$refs.baseSync.init() }, // 鏌ヨ鍚屾搴撳垪琛ㄦ暟鎹甛鏌ヨ鏈湴搴撳垪琛ㄦ暟鎹� findBaseSync() { - this.BaseManageData.querySyncTables(); - this.BaseManageData.queryLocalTables(); + this.BaseManageData.querySyncTables() + this.BaseManageData.queryLocalTables() }, closeAdd() { - this.showList = true; - this.$refs.baseSync.init(this.syncType); - }, + this.showList = true + this.$refs.baseSync.init(this.syncType) + } }, props: { cameraId: { default: "", - type: String, - }, + type: String + } }, components: { baseList, addBase, personList, - carList, + carList }, mounted() { window.addEventListener("message", (e) => { if (e.data.msg === "changeColor") { - const res = colorRgb(e.data.color); - document.documentElement.style.setProperty( - "--colorCard", - `${e.data.color}` - ); + const res = colorRgb(e.data.color) + document.documentElement.style.setProperty("--colorCard", `${e.data.color}`) } - }); + }) }, created() { - let color = localStorage.getItem("--colorCard"); + let color = localStorage.getItem("--colorCard") if (color) { - document.documentElement.style.setProperty("--colorCard", `${color}`); + document.documentElement.style.setProperty("--colorCard", `${color}`) } else { - color = getComputedStyle(document.documentElement).getPropertyValue( - "--colorCard" - ); - const res = colorRgb(color); - document.documentElement.style.setProperty("--colorCard-rgb", `${res}`); + color = getComputedStyle(document.documentElement).getPropertyValue("--colorCard") + const res = colorRgb(color) + document.documentElement.style.setProperty("--colorCard-rgb", `${res}`) } - }, -}; + } +} </script> -<style lang="scss" > +<style lang="scss"> .s-base-manage { box-sizing: border-box; background-color: #eff1f5; -- Gitblit v1.8.0