From 41dabb0db9619b8dbb8a311966e0b9920f67f7c8 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期四, 03 十一月 2022 16:10:40 +0800 Subject: [PATCH] 门前三包和趋势分析 --- src/views/operate/fivepack/threepack/components/updateUser/index.vue | 342 ++++-------------- src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue | 66 +++ /dev/null | 316 ---------------- src/views/operate/fivepack/threepack/components/aside/index.vue | 26 src/views/intelligentPatrol/illegalSearch/index.vue | 17 src/views/intelligentPatrol/trendAnalysis/index.vue | 141 +++++++ src/views/operate/fivepack/threepack/components/main/index.vue | 182 +++++---- src/views/operate/fivepack/threepack/components/header/index.vue | 35 + src/views/operate/fivepack/threepack/index.vue | 2 9 files changed, 431 insertions(+), 696 deletions(-) diff --git a/src/views/intelligentPatrol/illegalSearch/index.vue b/src/views/intelligentPatrol/illegalSearch/index.vue index 80129ec..deaf20d 100644 --- a/src/views/intelligentPatrol/illegalSearch/index.vue +++ b/src/views/intelligentPatrol/illegalSearch/index.vue @@ -63,7 +63,7 @@ </main> <footer> <!-- 鏌ョ湅鍏蜂綋淇℃伅 --> - <el-dialog title="鎻愮ず" :visible.sync="dialogView" width="30%" :before-close="handleClose"> + <el-dialog title="浜嬩欢璇︽儏" :visible.sync="dialogView" width="45%" :before-close="handleClose"> <ViewInfo :info="info"></ViewInfo> </el-dialog> </footer> @@ -235,8 +235,17 @@ }, // 鎵撳紑寮圭獥 handleView(data) { + this.info = data + this.dialogView = true console.log(data) - } + }, + // 鑷畾涔夊叧闂脊绐� + // myCloseDialog({flag,str,index}){ + // console.log( this[str]) + // if(index === 0){ + + // } + // } } } </script> @@ -294,7 +303,9 @@ color: #4b9bb7; } } - + .el-table{ + color: #4b9bb7; + } .tools { display: flex; justify-content: space-between; diff --git a/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue b/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue index 919c332..1c73af6 100644 --- a/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue +++ b/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue @@ -1,14 +1,70 @@ <template> - <div class="view-info"></div> + <div id="view-info"> + <el-form ref="info" :model="myInfo" label-width="100px"> + <el-form-item label="浜嬩欢缂栧彿:"> + <el-input v-model="myInfo.number" disabled></el-input> + </el-form-item> + <el-form-item label="杩濊绫诲瀷:"> + <el-input v-model="myInfo.type" disabled></el-input> + </el-form-item> + <el-form-item label="浜嬩欢鏉ユ簮:"> + <el-input v-model="myInfo.source" disabled></el-input> + </el-form-item> + <el-form-item label="浜嬩欢绛夌骇:"> + <el-input v-model="myInfo.level" disabled></el-input> + </el-form-item> + <el-form-item label="鎶ヨ鐐逛綅:"> + <el-input v-model="myInfo.point" disabled></el-input> + </el-form-item> + <el-form-item label="鎵�灞炵粍缁�:"> + <el-input v-model="myInfo.org" disabled></el-input> + </el-form-item> + <el-form-item label="鎶ヨ鏃堕棿:"> + <el-input v-model="myInfo.alarmTime" disabled></el-input> + </el-form-item> + <el-form-item label="鎸佺画鏃堕棿:"> + <el-input v-model="myInfo.continueTime" disabled></el-input> + </el-form-item> + <el-form-item label="杞︾墝鍙风爜:"> + <el-input v-model="myInfo.carNumber" disabled></el-input> + </el-form-item> + <el-form-item label="瀹℃牳鐘舵��:"> + <el-input v-model="myInfo.state" disabled></el-input> + </el-form-item> + <el-form-item label="澶勭悊鎰忚:"> + <el-input v-model="myInfo.advice" disabled></el-input> + </el-form-item> + </el-form> + </div> </template> <script> -export default{ - data(){ - return{ - +export default { + data() { + return { + myInfo: { + + } } + }, + props: ['info','myCloseDialog'], + created() { + this.myInfo = JSON.parse(JSON.stringify(this.info)) + }, + methods: { + } } </script> <style lang="scss" scoped> +#view-info{ + padding: 5vh 8vw; + .el-form{ + ::v-deep .el-input__inner{ + border: none; + } + ::v-deep .el-form-item__label{ + color: #4b9bb7; + } + } +} </style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/trendAnalysis/index.vue b/src/views/intelligentPatrol/trendAnalysis/index.vue index da3bee6..0c2d5a0 100644 --- a/src/views/intelligentPatrol/trendAnalysis/index.vue +++ b/src/views/intelligentPatrol/trendAnalysis/index.vue @@ -1,13 +1,148 @@ <template> - <div>瓒嬪娍鍒嗘瀽</div> + <div class="trend-analysis"> + <!-- 渚ц竟鏍� --> + <div class="trend-side"> + <!-- 杈撳叆鍖哄煙 --> + <div class="trend-input-area"> + <span class="trend-title">瓒嬪娍鍒嗘瀽</span> + <el-form ref="form" :model="search" label-width="6vw"> + <el-form-item label="绫诲瀷鏌ヨ"> + <el-input v-model="search.type" placeholder="鍐呭淇℃伅"></el-input> + </el-form-item> + <el-form-item label="鏃堕棿鑼冨洿"> + <el-input v-model="search.timeRange" suffix-icon="el-icon-date" placeholder="閫夋嫨鏃堕棿鑼冨洿"></el-input> + </el-form-item> + </el-form> + </div> + <!-- 鏁版嵁灞曠ず --> + <div class="trend-data-show"> + <!-- 鐐逛綅鍒囨崲 --> + <div class="trend-data-header"> + <el-button type="text">楂樺彂鐐逛綅</el-button> + <el-button type="text">棣栨杩濊鐐逛綅</el-button> + </div> + <!-- 瀵瑰簲鏁版嵁 --> + <div class="trend-data-main"> + <div class="high-point"> + <div class="point-item" v-for="item in highList" :key="item.id"> + <span>{{ item.pointName }}</span> + <span>{{ item.count }}</span> + </div> + </div> + </div> + </div> + </div> + <div class="trend-main"></div> + <div class="trend-footer" v-if="timeRangeFlag"> + <!-- 閫夋嫨鏃堕棿鑼冨洿 --> + <div class="time-area"> + <el-date-picker v-model="search.timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡"> + </el-date-picker> + </div> + </div> + </div> </template> <script> export default { - + data() { + return { + search: { + type: '', + timeRange: '' + }, + timeRangeFlag: false, + highList: [ + { + id: 1, + pointName: '鍚庡簡璺�200鍙�-鐞�', + count: '100娆�', + }, + { + id: 2, + pointName: '鍚庡簡璺�200鍙�-鐞�', + count: '100娆�', + }, + { + id: 3, + pointName: '鍚庡簡璺�200鍙�-鐞�', + count: '100娆�', + }, + { + id: 4, + pointName: '鍚庡簡璺�200鍙�-鐞�', + count: '100娆�', + }, + { + id: 5, + pointName: '鍚庡簡璺�200鍙�-鐞�', + count: '100娆�', + }, + ] + } + } } </script> -<style> +<style lang="scss" scoped> +.trend-analysis { + height: 100%; + padding: 10vh 10vw; + color: #4b9bb7; + display: flex; + .trend-side { + width: 20vw; + text-align: left; + height: 100%; + border: 1px solid #09152f; + .trend-input-area { + display: flex; + flex-direction: column; + padding: 0 2vw; + &>span { + line-height: 40px; + } + ::v-deep .el-form { + .el-form-item__label { + color: #4b9bb7; + } + } + } + + .trend-data-show { + width: 100%; + line-height: 40px; + .trend-data-header{ + display: flex; + .el-button{ + flex: 1; + border: 2px solid #09152f; + } + .el-button+.el-button{ + margin: 0; + } + } + .trend-data-main { + .high-point { + .point-item { + display: flex; + padding: 0 2vw; + justify-content: space-between; + } + } + } + } + } + .trend-main{ + flex: 1; + border: 1px solid #09152f; + } + .trend-footer { + ::v-deep .el-range-input { + background-color: #09152f; + } + } +} </style> \ No newline at end of file diff --git a/src/views/operate/fivepack/threepack/components/aside/index.vue b/src/views/operate/fivepack/threepack/components/aside/index.vue index a408d45..0231898 100644 --- a/src/views/operate/fivepack/threepack/components/aside/index.vue +++ b/src/views/operate/fivepack/threepack/components/aside/index.vue @@ -14,37 +14,37 @@ data() { return { data: [{ - label: '涓�绾� 1', + label: '濡欓珮琛楅亾', children: [{ - label: '浜岀骇 1-1', + label: '涓滆', children: [{ - label: '涓夌骇 1-1-1' + label: '铻鸿洺鍨�' }] }] }, { - label: '涓�绾� 2', + label: '浜戝嘲琛楅亾', children: [{ - label: '浜岀骇 2-1', + label: '涓滀涵', children: [{ - label: '涓夌骇 2-1-1' + label: '闅旀邯' }] }, { - label: '浜岀骇 2-2', + label: '椹ご', children: [{ - label: '涓夌骇 2-2-1' + label: '榫欏彛' }] }] }, { - label: '涓�绾� 3', + label: '鏂拌矾婀鹃晣', children: [{ - label: '浜岀骇 3-1', + label: '鏂拌矾婀鹃晣', children: [{ - label: '涓夌骇 3-1-1' + label: '鏂拌矾婀鹃晣' }] }, { - label: '浜岀骇 3-2', + label: '鏂拌矾婀鹃晣', children: [{ - label: '涓夌骇 3-2-1' + label: '鏂拌矾婀鹃晣' }] }] }], diff --git a/src/views/operate/fivepack/threepack/components/createUser/index.vue b/src/views/operate/fivepack/threepack/components/createUser/index.vue deleted file mode 100644 index d9fa34f..0000000 --- a/src/views/operate/fivepack/threepack/components/createUser/index.vue +++ /dev/null @@ -1,316 +0,0 @@ -<template> - <div class="createUser"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" - label-position="right"> - <!-- 搴楅摵绫诲瀷 --> - <el-form-item class="optionItem" label="搴楅摵绫诲瀷:" prop="nickName"> - <el-select v-model="user.userType" placeholder="閫夋嫨搴楅摵/闂ㄥ簵绫诲瀷"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> - <!-- 搴楅摵鍚嶇О --> - <el-form-item class="optionItems" label="搴楅摵鍚嶇О:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input> - </el-form-item> - <!-- 璐熻矗浜� --> - <el-form-item class="optionItem" label="璐熻矗浜�:" prop="username"> - <el-input v-model="user.username" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> - </el-form-item> - <!-- 搴楅摵鎻忚堪 --> - <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="mobile"> - <el-input type="textarea" v-model="user.mobile" placeholder="杈撳叆搴楅摵鎻忚堪"></el-input> - </el-form-item> - <!-- 鑱旂郴鏂瑰紡 --> - <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="email"> - <el-input v-model="user.email" placeholder="璇峰~鍐欏簵閾鸿仈绯绘柟寮�"></el-input> - </el-form-item> - <!-- 搴楅摵鍦板潃 --> - <el-form-item class="optionItem" label="搴楅摵鍦板潃:" prop="userType"> - <el-select v-model="user.userType" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> - </el-form> - </div> - </main> - <footer> - <div class="optionBtn"> - <el-button class="btn reset">鍙栨秷</el-button> - <el-button type="primary" class="btn submit" @click="handleUser">纭畾</el-button> - </div> - </footer> - </div> -</template> -<script> -export default { - data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); - } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } - } - }; - const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } - } - }; - const validatePhone = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); - } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } - } - }; - const validateMail = (rule, value, callback) => { - if (value) { - const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; - if (!rep.test(value)) { - callback(new Error("璇疯緭鍏ユ纭殑閭")) - } - } - }; - const validateRole = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateType = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateDepartment = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateWork = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateMac = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateIp = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - return { - user: { - nickName: '', - password: '', - username: '', - // gender: 1, - isDy: 0, - mobile: '', - email: '', - // role: null, - userType: null, - zj: { - areaNumber: '', - phoneNumber: "", - moreNumber: "", - }, - departmentId: null, - jobTitle: null, - // mac: '', - // ip: '', - }, - createUserRules: { - nickName: [ - { required: true, trigger: "blur", validator: validateNickname }, - ], - password: [ - { required: true, trigger: "blur", validator: validatePass }, - ], - username: [ - { required: true, trigger: "blur", validator: validateTruename }, - ], - // gender: [ - // { required: true, trigger: "blur" }, - // ], - isDy: [ - { required: true, trigger: "blur" }, - ], - mobile: [ - { required: true, trigger: "blur", validator: validatePhone }, - ], - email: [ - { required: false, trigger: "blur", validator: validateMail }, - ], - // role: [ - // { required: true, trigger: "blur", validator: validateRole }, - // ], - userType: [ - { required: true, trigger: "blur", validator: validateType }, - ], - zj: [ - { required: false, trigger: "blur" }, - ], - departmentId: [ - { required: true, trigger: "blur", validator: validateDepartment }, - ], - jobTitle: [ - { required: true, trigger: "blur", validator: validateWork }, - ], - // mac: [ - // { required: false, trigger: "blur", validator: validateMac }, - // ], - // ip: [ - // { required: false, trigger: "blur", validator: validateIp }, - // ], - }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } - ], - typeList: [] - } - }, - created() { - const that = this; - // 鑾峰彇瑙掕壊鍒楄〃 - // this.$axios.get('') - // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃 - // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{ - // console.log(res); - // }) - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) - }, - methods: { - handleUser() { - const { user } = this; - this.$axios.post('sccg/store/storeinfo/add',{ - contact:'18728108911', - idcardinfo:'511025199910028213', - owner:'娴嬭瘯浜哄憳', - storeaddr:'鍥涘窛鐪�', - storename:'娴嬭瘯搴椾竴', - storephoto:'111', - storescore:0, - }) - .then(res => { - console.log(res); - // if (res.code === 200) { - // console.log(1); - // this.$emit('sendDialog', { flag: false }); - // } - }) - }, - }, - props: ['sendDialog'] -} -</script> -<style lang="scss" scoped> -.createUser { - border-radius: 1px; - background-color: #09152f; - padding-bottom: 50px; - - main { - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-top: 20px; - - .mainContent { - display: flex; - justify-content: center; - margin-top: 50px; - - &::v-deep .el-form-item__label { - color: #4b9bb7; - } - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - &::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - - } - } - - footer { - border-top: 1px solid #4b9bb7; - display: flex; - justify-content: flex-end; - padding: 0 20px; - .optionBtn { - display: flex; - margin-top: 20px; - - .btn { - padding: 12px 50px; - } - } - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/fivepack/threepack/components/header/index.vue b/src/views/operate/fivepack/threepack/components/header/index.vue index 35c292d..1ef6986 100644 --- a/src/views/operate/fivepack/threepack/components/header/index.vue +++ b/src/views/operate/fivepack/threepack/components/header/index.vue @@ -8,31 +8,38 @@ </div> <div class="status"> <span>搴楅摵鐘舵��:</span> - <el-input placeholder="閫夋嫨搴楅摵鐘舵��" v-model="search"></el-input> + <el-select v-model="storeState" placeholder="閫夋嫨搴楅摵鐘舵��"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> </div> <div class="findBtn"> <el-button type="primary" @click="setSearch" icon="el-icon-search">鏌ヨ</el-button> - <el-button icon="el-icon-delete-solid">閲嶇疆</el-button> + <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> </div> </div> - </div> - <div class="footer"> - <el-dialog :visible.sync="dialogCreate" title="娣诲姞搴楅摵" width="45%" v-if="dialogCreate"> - <createUser @sendDialog="sendDialog" /> - </el-dialog> </div> </header> </template> <script> -import createUser from "../createUser"; export default { components: { - createUser, }, data() { return { dialogCreate: false, search: '', + storeState: null, + options:[ + { + label:'钀ヤ笟', + value:1 + }, + { + label:'鍊掗棴', + value:2 + } + ] } }, methods: { @@ -43,6 +50,12 @@ console.log(flag); this.dialogCreate = flag.flag; this.$emit('setDialog', { flag: true }) + }, + // 閲嶇疆鎼滅储鏉′欢 + handleReset(){ + console.group(1) + this.search = '', + this.storeState =null } }, props: ['setDialog', 'getSearch', 'flag'], @@ -59,9 +72,11 @@ line-height: 100px; justify-content: space-between; align-items: center; - .find{ + + .find { display: flex; } + .search, .status { display: flex; diff --git a/src/views/operate/fivepack/threepack/components/main/index.vue b/src/views/operate/fivepack/threepack/components/main/index.vue index 8633125..06f01a5 100644 --- a/src/views/operate/fivepack/threepack/components/main/index.vue +++ b/src/views/operate/fivepack/threepack/components/main/index.vue @@ -3,44 +3,42 @@ <div class="mainContent"> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" - :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column label="搴楅摵缂栧彿" min-width="10"> - <template slot-scope="scope">{{ scope.row.id }}</template> + <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10"> </el-table-column> - <el-table-column prop="nickName" label="搴楅摵鍚嶇О" min-width="10"> + <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="username" label="搴楅摵鑱旂郴浜�" min-width="10"> + <el-table-column prop="storeOwner" label="搴楅摵鑱旂郴浜�" min-width="10"> </el-table-column> - <el-table-column prop="mobile" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> + <el-table-column prop="storePhone" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> </el-table-column> - <el-table-column prop="note" label="搴楅摵璇︾粏鍦板潃" min-width="10"> + <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10"> </el-table-column> - <el-table-column prop="note" label="鍏宠仈鎽勫儚鏈�" min-width="10"> + <el-table-column prop="storeMoni" label="鍏宠仈鎽勫儚鏈�" min-width="10"> </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> <div class="operation"> - <el-link icon="el-icon-edit" :underline="false">缂栬緫</el-link> - <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false">鍒犻櫎</el-link> - <el-link icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link> - <el-link icon="el-icon-edit" :underline="false">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" :underline="false" @click="hadnleView(scope.row,0)">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete(scope.row.id)">鍒犻櫎</el-link> + <el-link class="leftPx" icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link> + <el-link class="leftPx" icon="el-icon-edit" :underline="false" @click="hadnleView(scope.row,1)">鏌ョ湅</el-link> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate" - :title="updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo /> - </el-dialog> + :title="updateFlag ? '淇敼搴楅摵淇℃伅' : '鏌ョ湅搴楅摵淇℃伅'" :before-close="handleClose"> + <updateUser :updateFlag="updateFlag" :userInfo=userInfo @handleUpdateData="handleUpdateData" /> + </el-dialog> <!-- 鍒嗛〉 --> <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" - :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" - @next-click="handleNext"> + :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> @@ -55,7 +53,53 @@ }, data() { return { - tableData: [], + tableData: [ + { + id: 1, + storeNumber: '1002220212', + storeName: '搴楅摵1', + storeOwner: '寮犱笁', + storePhone: '17844631885', + storeAddress: '鐢滃績琛�12鍙�', + storeMoni: '鎽勫儚澶�1' + }, + { + id: 2, + storeNumber: '1002220213', + storeName: '搴楅摵2', + storeOwner: '寮犱笁', + storePhone: '17844631885', + storeAddress: '鐢滃績琛�13鍙�', + storeMoni: '鎽勫儚澶�1' + }, + { + id: 3, + storeNumber: '1002220214', + storeName: '搴楅摵3', + storeOwner: '寮犱笁', + storePhone: '17844631885', + storeAddress: '鐢滃績琛�14鍙�', + storeMoni: '鎽勫儚澶�1' + }, + { + id: 4, + storeNumber: '1002220215', + storeName: '搴楅摵4', + storeOwner: '寮犱笁', + storePhone: '17844631885', + storeAddress: '鐢滃績琛�15鍙�', + storeMoni: '鎽勫儚澶�1' + }, + { + id: 5, + storeNumber: '1002220216', + storeName: '搴楅摵5', + storeOwner: '寮犱笁', + storePhone: '17844631885', + storeAddress: '鐢滃績琛�16鍙�', + storeMoni: '鎽勫儚澶�1' + }, + ], search: "111", dialogUpdate: false, updateFlag: false, @@ -67,66 +111,49 @@ } }, created() { - this.getUserList(); }, methods: { + // 鍒犻櫎鏁版嵁 + handleDelete(id){ + const {tableData} = this + let idx + for(let key in tableData){ + tableData[key].id === id ? idx = key :'' + } + this.tableData.splice(idx,1) + }, + // 鎵撳紑寮圭獥 + hadnleView(data,index){ + index === 0 ? this.updateFlag = true : this.updateFlag = false + this.userInfo = data + this.dialogUpdate = true + }, + // 鑷畾涔夊叧闂脊绐� + handleClose(done){ + if(this.updateFlag){ + this.$confirm('纭鍏抽棴?') + .then(_=>{ + done() + }) + }else{ + done() + } + }, + // 鏇存柊鏁版嵁 + handleUpdateData(obj){ + const {tableData} = this + let index = -1 + for(let item in tableData){ + if(tableData[item].id===obj.id){ + index = item + } + } + this.tableData.splice(index,1,obj) + this.dialogUpdate = false + }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.getUserList(); - }, - // 涓婁竴椤电偣鍑讳簨浠� - handlePrev(page) { - this.currentPage = page; - this.getUserList(); - }, - // 涓嬩竴椤电偣鍑讳簨浠� - handleNext(page) { - this.currentPage = page; - this.getUserList(); - }, - // 淇敼瑙掕壊 - handleChangeRole(obj) { - this.dialogUpdate = true - this.user = obj; - // console.log(obj) - }, - // 淇敼鐢ㄦ埛鐘舵�� - handleChangeStatus(obj) { - let { id, status } = obj; - status == true ? status = 1 : status = 0; - this.$axios.post(`sccg/admin/updateStatus/` + id + '?status=' + status).then(res => { - console.log(res); - }) - }, - // 鑾峰彇鐢ㄦ埛鍒楄〃 - getUserList() { - const that = this; - const { currentPage, pageSize, search } = this; - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) - // this.$axios.get(`sccg/store/storeinfo/list?keyword=${search}&pageNum=${currentPage}&pageSize=${pageSize}`).then(res => { - // if (res.code === 200) { - // res.data.records.forEach(item => { - // item.createTime = helper(item.createTime); - // item.status == 1 ? item.status = true : item.status = false; - // }) - // that.totalNum = res.data.pages * pageSize; - // that.tableData = res.data.records; - // this.renderFlag = true; - // } - // }) - }, - // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) - handleFind(rowData) { - this.dialogUpdate = true; - this.updateFlag = false; - this.userInfo = rowData; - }, - // 淇敼鐢ㄦ埛閮ㄩ棬淇℃伅 - handleUpdate(rowData) { - this.dialogUpdate = true; - this.updateFlag = true; - this.userInfo = rowData }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { @@ -147,12 +174,11 @@ if (this.keyword != '') { this.search = this.keyword; } - this.getUserList(); this.$emit('resetFresh', { flag: false }) } }, immediate: true - } + }, } } </script> @@ -203,10 +229,6 @@ .operation { display: flex; - - .line { - padding: 0 5px; - } .el-button { // background-color: #fff; diff --git a/src/views/operate/fivepack/threepack/components/updateUser/index.vue b/src/views/operate/fivepack/threepack/components/updateUser/index.vue index eabcd01..be671fd 100644 --- a/src/views/operate/fivepack/threepack/components/updateUser/index.vue +++ b/src/views/operate/fivepack/threepack/components/updateUser/index.vue @@ -1,97 +1,33 @@ <template> <div class="updateUser"> - <!-- <header> - <div class="headerTitle">{{updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'}}</div> - </header> --> <main> - <!-- <div class="mainTitle">鍩虹淇℃伅</div> --> <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" label-position="right"> - <!-- 鐢ㄦ埛鍚嶇О --> - <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username"> - <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" :disabled="true"></el-input> + <!-- 搴楅摵缂栧彿 --> + <el-form-item class="optionItem" label="搴楅摵缂栧彿:" prop="storeNumber"> + <el-input v-model="user.storeNumber" placeholder="璇峰~鍐欏簵閾虹紪鍙�" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 鐢ㄦ埛瀵嗙爜 --> - <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" :disabled="true"> - </el-input> + <!-- 搴楅摵鍚嶇О --> + <el-form-item class="optionItem" label="搴楅摵鍚嶇О:" prop="storeName"> + <el-input v-model="user.storeName" placeholder="璇峰~鍐欏簵鍚嶇О" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 鎵�灞炵敤鎴峰鍚� --> - <!-- <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="true_name"> - <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> - </el-form-item> --> - <!-- 鎬у埆 --> - <!-- <el-form-item class="optionItem" label="鎬у埆:" prop="gender"> - <el-radio-group v-model="user.gender"> - <el-radio :label="1">鐢�</el-radio> - <el-radio :label="2">濂�</el-radio> - </el-radio-group> - </el-form-item> --> - <!-- 鏄惁鍏氬憳 --> - <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> - <el-radio-group v-model="user.isDy" disabled> - <el-radio :label="1">鏄�</el-radio> - <el-radio :label="0">鍚�</el-radio> - </el-radio-group> + <!-- 搴楅摵鑱旂郴浜� --> + <el-form-item class="optionItem" label="搴楅摵鑱旂郴浜�:" prop="storeOwner"> + <el-input v-model="user.storeOwner" placeholder="璇峰~鍐欏簵閾鸿仈绯讳汉" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 鎵�灞炴墜鏈哄彿鐮� --> - <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile"> - <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" :disabled="true"></el-input> + <!-- 搴楅摵鑱旂郴鐢佃瘽 --> + <el-form-item class="optionItem" label="搴楅摵鑱旂郴鐢佃瘽:" prop="storePhone"> + <el-input v-model="user.storePhone" placeholder="璇峰~鍐欏簵閾鸿仈绯荤數璇�" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 閭鍦板潃 --> - <el-form-item class="optionItem" label="閭鍦板潃:" prop="email"> - <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" :disabled="true"></el-input> + <!-- 搴楅摵璇︾粏鍦板潃 --> + <el-form-item class="optionItem" label="搴楅摵璇︾粏鍦板潃:" prop="storeAddress"> + <el-input v-model="user.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 閫夋嫨瑙掕壊 --> - <!-- <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�"> - <el-option v-for="item in roleList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> --> - <!-- 鐢ㄦ埛绫诲瀷 --> - <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> - <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> - </el-option> - </el-select> + <!-- 鍏宠仈鎽勫儚鏈� --> + <el-form-item class="optionItem" label="鍏宠仈鎽勫儚鏈�:" prop="storeMoni"> + <el-input v-model="user.storeMoni" placeholder="璇峰~鍐欏叧鑱旀憚鍍忔満" :disabled="!updateFlag"></el-input> </el-form-item> - <!-- 搴ф満/鍒嗘満 --> - <!-- <el-form-item class="optionItem" label="搴ф満/鍒嗘満:" prop="zj"> - <div class="optionHandleSp"> - <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="鐢佃瘽鍖哄彿"> - </el-input> - <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="鐢佃瘽鍙风爜"> - </el-input> - <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="鍒嗘満鍙风爜"> - </el-input> - </div> - </el-form-item> --> - <!-- 鎵�灞為儴闂� --> - <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.department" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.departName" - :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <!-- 褰撳墠鑱屽姟 --> - <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle"> - <el-select v-model="user.work" placeholder="璇烽�夋嫨褰撳墠鑱屽姟" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <!-- 濉啓鎵�灞瀖ac鍦板潃 --> - <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac"> - <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input> - </el-form-item> --> - <!-- 濉啓鎵�灞瀒p鍦板潃 --> - <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip"> - <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></el-input> - </el-form-item> --> <el-form-item v-if="updateFlag"> <div class="optionBtn"> <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 @@ -107,188 +43,89 @@ <script> export default { data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); + const validateNumber = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵缂栧彿涓嶈兘涓虹┖')) } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + } + const validateName = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖')) } - }; - const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + } + const validateOwner = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵鑱旂郴浜轰笉鑳戒负绌�')) } - }; - const validatePhone = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); - } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } + } + const validatePhone = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵鑱旂郴鐢佃瘽涓嶈兘涓虹┖')) } - }; - const validateMail = (rule, value, callback) => { - if (value) { - const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; - if (!rep.test(value)) { - callback(new Error("璇疯緭鍏ユ纭殑閭")) - } + } + const validateAddress = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵璇︾粏鍦板潃涓嶈兘涓虹┖')) } - }; - const validateRole = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); + } + const validateMoni = (rule,value,callback)=>{ + if(value){ + callback() + }else{ + callback(new Error('搴楅摵鍏宠仈鎽勫儚鏈轰笉鑳戒负绌�')) } - }; - const validateType = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateDepartment = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateWork = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateMac = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; - const validateIp = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; + } return { user: { - nickName: '', - password: '', - username: '', - // gender: 1, - isDy: 1, - mobile: '', - email: '', - // role: null, - userType: null, - zj: { - areaNumber: '', - phoneNumber: "", - moreNumber: "", - }, - departmentId: null, - jobTitle: null, - // mac: '', - // ip: '', + storeNumber: '', + storeName: '', + storeOwner: '', + storePhone: '', + storeAddress: '', + storeMoni: '' }, createUserRules: { - nickName: [ - { required: true, trigger: "blur", validator: validateNickname }, + storeNumber: [ + {trigger:'blur',validator:validateNumber} ], - password: [ - { required: true, trigger: "blur", validator: validatePass }, + storeName: [ + {trigger:'blur',validator:validateName} ], - username: [ - { required: true, trigger: "blur", validator: validateTruename }, + storeOwner: [ + {trigger:'blur',validator:validateOwner} ], - // gender: [ - // { required: true, trigger: "blur" }, - // ], - isDy: [ - { required: true, trigger: "blur" }, + storePhone: [ + {trigger:'blur',validator:validatePhone} ], - mobile: [ - { required: true, trigger: "blur", validator: validatePhone }, + storeAddress: [ + {trigger:'blur',validator:validateAddress} ], - email: [ - { required: false, trigger: "blur", validator: validateMail }, - ], - // role: [ - // { required: true, trigger: "blur", validator: validateRole }, - // ], - userType: [ - { required: true, trigger: "blur", validator: validateType }, - ], - zj: [ - { required: false, trigger: "blur" }, - ], - departmentId: [ - { required: true, trigger: "blur", validator: validateDepartment }, - ], - jobTitle: [ - { required: true, trigger: "blur", validator: validateWork }, - ], - // mac: [ - // { required: false, trigger: "blur", validator: validateMac }, - // ], - // ip: [ - // { required: false, trigger: "blur", validator: validateIp }, - // ], + storeMoni: [ + {trigger:'blur',validator:validateMoni} + ] }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } - ], - typeList: [] } }, created() { const that = this; this.user = JSON.parse(JSON.stringify(that.userInfo)); - // 鑾峰彇瑙掕壊鍒楄〃 - // this.$axios.get('') - // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃 - // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{ - // console.log(res); - // }) - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) }, methods: { handleUser() { - const { user } = this; - this.$axios.post('sccg/depart/status', { - id: user.departmentId, - status: user.status ? 1 : 0, - }).then(res => { - console.log(res); - }) + this.$emit('handleUpdateData',this.user) } }, - props: ['userInfo', 'updateFlag'] + props: ['userInfo', 'updateFlag','handleUpdateData'] } </script> <style lang="scss" scoped> @@ -296,44 +133,17 @@ border-radius: 1px; background-color: #09152f; - // header { - // display: flex; - // justify-content: center; - // height: 60px; - // line-height: 60px; - // padding: 0 20px; - // border: 1px solid #fff; - // .headerTitle { - // color: #4b9bb7; - // font-weight: 600; - // } - - // .headerTip span { - // color: #ff3b6c; - // } - - // .headerTip label { - // color: #4b9bb7; - // } - // } - main { - // border: 1px solid #fff; text-align: left; padding: 0 55px; background-color: #09152f; padding-bottom: 50px; - // .mainTitle { - // color: #4b9bb7; - // font-weight: 600; - // line-height: 100px; - // font-size: 14px; - // } .mainContent { display: flex; justify-content: center; padding-top: 50px; + .el-form-item__content { width: 400px; diff --git a/src/views/operate/fivepack/threepack/index.vue b/src/views/operate/fivepack/threepack/index.vue index 086512c..af6d90e 100644 --- a/src/views/operate/fivepack/threepack/index.vue +++ b/src/views/operate/fivepack/threepack/index.vue @@ -50,6 +50,8 @@ display: flex; height: 100%; .right{ + flex: 1; + height: 100%; padding-left: 20px; } &::v-deep .el-dialog__header, -- Gitblit v1.8.0