From 5041a24a198686f8c93e0adf497f0f638b6c49c4 Mon Sep 17 00:00:00 2001 From: children117cl <278950112@qq.com> Date: 星期五, 25 六月 2021 12:46:45 +0800 Subject: [PATCH] 不能删除超管;不能冻结超管 --- src/pages/demo/index.vue | 203 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 194 insertions(+), 9 deletions(-) diff --git a/src/pages/demo/index.vue b/src/pages/demo/index.vue index b172e44..b9e4cae 100644 --- a/src/pages/demo/index.vue +++ b/src/pages/demo/index.vue @@ -1,5 +1,8 @@ <template> <div class="app-container"> + <!-- 杩斿洖鎸夐挳鍜屾爣棰� --> + <!-- <el-page-header class="mb20" content="xx" @back="$router.go(-1)" /> --> + <!-- 鎼滅储鍖� 鈫撯啌鈫撯啌鈫撯啌鈫撯啌鈫撯啌 --> <el-form v-show="showSearch" ref="searchForm" :inline="true"> <el-form-item label="瑙掕壊鍚嶇О"> @@ -9,6 +12,7 @@ clearable size="small" style="width: 240px" + maxlength="50" @keyup.enter.native="reGetList" /> </el-form-item> @@ -22,27 +26,43 @@ <!-- 鎿嶄綔鍖� 鈫撯啌鈫撯啌鈫撯啌鈫撯啌鈫撯啌 --> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> + <!-- 鏉冮檺鍒ゆ柇 v-if="getAuthValueFN('xxx_add')" --> <el-button type="primary" icon="el-icon-plus" size="mini" + @click="showAddDialog" >鏂板</el-button> </el-col> <right-toolbar :show-search.sync="showSearch" @queryTable="getList" /> </el-row> <!-- 鎿嶄綔鍖� 鈫戔啈鈫戔啈鈫戔啈鈫戔啈鈫戔啈 --> - <el-table :data="list"> + <el-table :data="list" stripe> <el-table-column type="index" label="搴忓彿" align="center" width="60" /> <el-table-column label="瑙掕壊鍚嶇О" prop="name" align="center" min-width="120" /> - <el-table-column label="鍒涘缓鏃堕棿" prop="createTime" align="center" min-width="180" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" min-width="100"> + <el-table-column label="鏄惁涓婃灦" prop="isUp" align="center" min-width="100"> <template slot-scope="scope"> + <!-- 鏉冮檺鍒ゆ柇 v-if="getAuthValueFN('xxx_edit')" --> + <el-switch + v-model="scope.row.isUp" + :active-value="1" + :inactive-value="0" + @change="handleUpChange(scope.row)" + /> + </template> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" prop="createTime" align="center" min-width="160" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="120"> + <template slot-scope="scope"> + <!-- 鏉冮檺鍒ゆ柇 v-if="getAuthValueFN('xxx_edit')" --> <el-button size="mini" type="text" icon="el-icon-edit" + @click="showEditDialog(scope.row)" >缂栬緫</el-button> + <!-- 鏉冮檺鍒ゆ柇 v-if="getAuthValueFN('xxx_del')" --> <el-button size="mini" type="text warn" @@ -53,6 +73,26 @@ </el-table-column> </el-table> + <!-- 鏂板&缂栬緫 --> + <el-dialog v-el-drag-dialog :title="(dialogData.type=='add'?'鏂板':'缂栬緫') + objectName" width="500px" :visible.sync="dialogVisible" append-to-body :before-close="hideDialog" :close-on-click-modal="false"> + <el-form ref="refDialog" :model="dialogData" label-width="110px" :rules="rules" size="small"> + <el-form-item label="鍚嶇О" prop="name"> + <el-input v-model="dialogData.name" placeholder="璇疯緭鍏ュ悕绉�" maxlength="50" /> + </el-form-item> + <el-form-item label="鏄惁涓婃灦" prop="isUp"> + <el-switch + v-model="dialogData.isUp" + :active-value="1" + :inactive-value="0" + /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="hideDialog">鍙栨秷</el-button> + <el-button type="primary" @click="submitHandle">纭畾</el-button> + </div> + </el-dialog> + <pagination v-show="total>0" :total="total" @@ -60,25 +100,50 @@ :limit.sync="pageSize" @pagination="getList" /> + + <back-to-top :visibility-height="300" :back-position="50" transition-name="fade" /> </div> </template> <script> - +import BackToTop from '@/components/BackToTop' export default { - name: 'Role', + name: 'Demo', + components: { BackToTop }, data() { return { showSearch: true, // 鏄惁鏄剧ず鎼滅储鍖� - keyWord: '', + keyWord: '', // 鎼滅储鍖哄瓧娈碉紝鍙嚜琛屾墿灞曞叾浣欏瓧娈� + // TODO + objectName: 'xx', // 瀵硅薄鍚嶇О锛岀敤浜庡垹闄ゆ彁绀恒�佸惎鐢ㄦ彁绀恒�佸脊绐楁爣棰樼瓑 + + // 鏁版嵁鍒楄〃 list: [], + + // 寮圭獥鏁版嵁 + dialogVisible: false, + dialogData: {}, + + // 瀵屾枃鏈紪杈戝櫒 + // rangenum: null, // 鍒嗛〉 鈫撯啌鈫撯啌鈫撯啌鈫撯啌鈫撯啌 total: 0, pageNum: 1, - pageSize: 20 + pageSize: 20, // 鍒嗛〉 鈫戔啈鈫戔啈鈫戔啈鈫戔啈鈫戔啈 + + // TODO + // 琛ㄥ崟鏍¢獙 + rules: { + name: [ + { required: true, message: '鍚嶇О涓嶈兘涓虹┖', trigger: 'change' } + ], + isUp: [ + { required: true, message: '鏄惁涓婃灦涓嶈兘涓虹┖', trigger: 'change' } + ] + } } }, mounted() { @@ -90,6 +155,21 @@ this.getList() }, + // ========== 瀵屾枃鏈浉鍏� + // 瀵屾枃鏈紪杈戝櫒鐨勫唴瀹硅祴鍊� + // catchData(content) { + // if (content === '<p><br></p>') content = '' + // try { + // const currentRange = window.getSelection().getRangeAt(0) + // this.rangenum = currentRange + // } catch (e) { + // + // } + // this.$set(this.dialogData, 'content', content) + // this.$refs[this.formName].validateField('content') + // }, + // ========== 瀵屾枃鏈浉鍏� + // 鑾峰彇鍒楄〃 getList() { var { pageNum, pageSize, keyWord } = this @@ -97,7 +177,9 @@ url: 'xxx', params: { pageNum: pageNum, - rowCount: pageSize, + pageSize: pageSize, + + // TODO keyWord: keyWord }, mockData: { @@ -131,12 +213,13 @@ // 鍒犻櫎 handleDelete(item) { // 鎵撳紑浜屾纭寮圭獥 - this.$confirm('鏄惁纭鍒犻櫎璇ヨ鑹�?', '鎻愮ず', { + this.$confirm('鏄惁纭鍒犻櫎璇�' + this.objectName + '?', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { // 纭畾鍥炶皟 + // TODO url this.postFN({ url: 'xxx', params: { @@ -152,6 +235,108 @@ this.$messageSuc('鍒犻櫎鎴愬姛') }) }).catch(() => {}) + }, + // 淇敼鏄惁涓婃灦 + handleUpChange(item) { + const text = item.isUp === 1 ? '涓婃灦' : '涓嬫灦' + this.$confirm('纭瑕�' + text + '璇�' + this.objectName + '鍚�?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + // TODO url + this.postFN({ + url: 'xxx', + params: { + id: item.id + }, + mockData: { + code: 100, + msg: '', + data: {} + } + }, () => { + this.$messageSuc(text + '鎴愬姛') + }, (res) => { + item.isUp = item.isUp === 1 ? 0 : 1 + this.$messageError(res.msg) + }) + }).catch(() => { + item.isUp = item.isUp === 1 ? 0 : 1 + }) + }, + + // 鎵撳紑鏂板寮圭獥 + showAddDialog() { + var dialogData = { + type: 'add', + isUp: 1 + // TODO 閮ㄥ垎缁勪欢闇�瑕侀璁惧瓧娈碉紝鎻愪緵缁檝-model锛屼緥濡� el-select el-timepicker el-datepicker 涓婁紶缁勪欢 瀵屾枃鏈瓑 + } + this.dialogVisible = true + this.$nextTick(() => { + this.dialogData = dialogData + this.$refs['refDialog'].resetFields() + }) + }, + // 鎵撳紑缂栬緫寮规 + showEditDialog(item) { + var dialogData = { + type: 'edit', + ...item + } + console.log('dialogData', dialogData) + this.dialogVisible = true + this.$nextTick(() => { + this.dialogData = dialogData + this.$refs['refDialog'].resetFields() + }) + }, + // 鍏抽棴缂栬緫寮圭獥 + hideDialog() { + this.dialogData = {} + this.dialogVisible = false + // 娓呯┖瀵屾枃鏈� + // this.rangenum = null + }, + // 鎻愪氦鏂板&缂栬緫 + submitHandle() { + this.$refs['refDialog'].validate(valid => { + if (valid) { + this.submitReq() + } + }) + }, + // 鎻愪氦鎺ュ彛 + submitReq() { + var { dialogData } = this + var params = { + name: dialogData.name, + isUp: dialogData.isUp + // TODO 鍙傛暟 + } + + if (dialogData.password) params.password = dialogData.password + + var isAdd = dialogData.type === 'add' + // TODO url + var url = isAdd ? 'xxx/add' : 'xxx/edit' + + !isAdd && (params.id = dialogData.id) + + this.postFN({ + url: url, + params: params, + mockData: { + code: 100, + msg: '', + data: {} + } + }, () => { + this.$messageSuc('淇濆瓨鎴愬姛') + this.hideDialog() + isAdd ? this.reGetList() : this.getList() + }) } } } -- Gitblit v1.8.0