From f00e6c3b881c67ef3651d4f812230188af01faca Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期日, 12 五月 2024 23:56:57 +0800
Subject: [PATCH] 1

---
 src/views/master/person/main/personPost.vue |  250 ++++++++++++++++++++++++++-----------------------
 1 files changed, 131 insertions(+), 119 deletions(-)

diff --git a/src/views/master/person/main/personPost.vue b/src/views/master/person/main/personPost.vue
index 5b20d59..a6cccdd 100644
--- a/src/views/master/person/main/personPost.vue
+++ b/src/views/master/person/main/personPost.vue
@@ -2,7 +2,7 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-03-26 10:28:33
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-03-28 18:25:55
+ * @LastEditTime: 2024-04-10 15:44:08
  * @FilePath: /smart-web/src/views/master/person/main/index.vue
  * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -12,161 +12,128 @@
 			<div class="right-top">
 				<div class="right-bottom"> 
 					<el-button type="primary" @click="addPerson">+ 娣诲姞宀椾綅</el-button>
+					<!-- 瀵煎叆 -->
+					<import-table class="exportBtn" :exportUrl="exportUrl" :uploadUrl="uploadUrl"></import-table>
+					<!-- 瀵煎嚭 -->
+					<el-button type="primary" @click="getExport">瀵煎嚭</el-button>
 					<el-button type="danger" plain @click="delPerson">鍒犻櫎</el-button>
 				</div>
 				<div>
-					<el-select v-model="input3" placeholder="鐘舵��" class="searchStatus">
-						<el-option
-							v-for="item in options"
-							:key="item.value"
-							:label="item.label"
-							:value="item.value"
-							size="small"
-						/>
+					<el-select v-model="postSearchData.status" placeholder="鐘舵��" class="searchStatus">
+						<el-option key="1" label="鍚敤" value="1" size="small"/>
+						<el-option key="0" label="鍋滅敤" value="0" size="small"/>
 					</el-select>
-					<el-input
-						v-model="input3"
-						style="width: 200px"
-						size="small"
-						placeholder="璇疯緭鍏ュ叧閿瓧杩涜杩囨护"
-						class="input-with-select"
-						>
+					<el-input v-model="postSearchData.keywords" style="width: 200px" size="small" placeholder="璇疯緭鍏ュ叧閿瓧杩涜杩囨护">
 						<template #append>
-							<el-button :icon="Search" />
+							<el-button @click="getPost">
+								<i class="el-icon"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704z"></path></svg></i>
+							</el-button>
 						</template>
 					</el-input>
 				</div>
 			</div>
 			<div class="right-table">
-				<el-table
-					ref="multipleTableRef"
-					:data="tableData"
-					border
-					style="width: 100%"
-					class="multipleTableRef"
-					@selection-change="handleSelectionChange"
-				>
+				<el-table ref="multipleTableRef" :data="tableData" border style="width: 100%" class="multipleTableRef" @selection-change="handleSelectionChange">
 					<el-table-column type="selection" width="55" />
-					<el-table-column
-					prop="date"
-					label="宀椾綅缂栧彿">
-					</el-table-column>
-					<el-table-column
-					prop="name"
-					label="宀椾綅">
-					</el-table-column>
-					<el-table-column
-					fixed="right"
-					label="鎿嶄綔">
-					<template #default="scope">
-						<el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
-						<el-button text type="primary" size="small" @click="table_show(scope.row, scope.$index)">鏌ョ湅</el-button>
-					</template>
+					<el-table-column prop="postCode" label="宀椾綅缂栧彿"></el-table-column>
+					<el-table-column prop="postName" label="宀椾綅"></el-table-column>
+					<el-table-column fixed="right" label="鎿嶄綔">
+						<template #default="scope">
+							<el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
+						</template>
 					</el-table-column>
 				</el-table>
 				<el-pagination
 					@size-change="handleSizeChange"
 					@current-change="handleCurrentChange"
 					:current-page="currentPage4"
-					:page-sizes="[100, 200, 300, 400]"
-					:page-size="100"
+					:page-sizes="[15, 50, 100]"
+					:page-size="15"
 					layout="total, sizes, prev, pager, next, jumper"
-					:total="400">
+					:total="totle">
 				</el-pagination>
 			</div>
 		</div>
 	</div>
-
-	<el-dialog title="閮ㄩ棬璋冩暣" v-model="departmentVisible" :width="400" destroy-on-close>
-		<el-form :model="departmentFrom" :rules="departmentVisibleRules" :disabled="mode=='show'" ref="dialogForm" label-width="80px" label-position="center">
-			<el-row>
-				<el-col :span="24">
-					<el-form-item label="閮ㄩ棬" prop="department">
-						<el-select v-model="departmentFrom.department" style="width: 100%">
-							<el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id"/>
-						</el-select>
-					</el-form-item>
-				</el-col>
-			</el-row>
-		</el-form>
+	
+	<save-dialog v-if="dialog.save" ref="saveDialog" @success="postHandleSuccess" @closed="dialog.save=false"></save-dialog>
+	<!-- 鍒犻櫎 -->
+	<el-dialog title="" v-model="delPersonModel" :width="300" destroy-on-close>
+		<div>
+			<div style="margin-bottom: 6px;"><span class="delIcon">!</span>璇蜂綘璋ㄦ厧閫夋嫨锛�</div>
+			<div style="text-indent: 24px;">鍒犻櫎鏁版嵁浼氬奖鍝嶅凡鍏宠仈鐨勪笟鍔� ,鑻ユ偍鎯冲湪宸插叧鑱旂殑涓氬姟涓緷鐒舵樉绀鸿繖浜涙暟鎹�, 鎮ㄥ彲浠ラ�夋嫨 鍋滅敤 鎿嶄綔銆傚仠鐢ㄥ悗姝ゆ暟鎹皢涓嶈兘鍐嶈鏂颁笟鍔′娇鐢ㄣ��</div>
+		</div>
 		<template #footer>
-			<el-button @click="departmentVisible=false" >鍙� 娑�</el-button>
-			<el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="departmentSubmit()">淇� 瀛�</el-button>
+			<div class="footerDiv">
+				<div class="delBtn" @click="delData(0)">鍒犻櫎</div>
+				<div class="delBtn" @click="delData(1)">鍋滅敤</div>
+			</div>
 		</template>
 	</el-dialog>
-	
-	<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSuccess" @closed="dialog.save=false"></save-dialog>
 </template>
 <script>
+	import importTable from '@/layout/components/importTable.vue'
 	import saveDialog from './post'
 	export default {
 		name: "bakalaka",
 		data(){
 			return {
+				uploadUrl: "/api/blade-system/post/import-post",
+				exportUrl: "/api/blade-system/post/export-template",
+				totle: "0",
+				postSearchData: {
+					current: 1,
+					size: 15,
+					status: "1",
+					total: "0",
+					keywords: ""
+				},
 				isSaveing: false,
-				groups: [],
-				departmentFrom: {
-					department: ""
-				},
-				departmentVisibleRules: {
-					department:[
-						{required: true, message: '璇烽�夋嫨閮ㄩ棬'}
-					]
-				},
-				departmentVisible: false,
 				dialog: {
 					save: false
 				},
-				leftActive: true,
-				input: '',
-				options: [{
-					value: '閫夐」1',
-					label: '榛勯噾绯�'
-				}],
-				input3: '',
-				tableData: [{
-					date: '2016-05-02',
-					name: '鐜嬪皬铏�',
-					province: '涓婃捣',
-					city: '鏅檧鍖�',
-					address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
-					zip: 200333
-					}, {
-					date: '2016-05-04',
-					name: '鐜嬪皬铏�',
-					province: '涓婃捣',
-					city: '鏅檧鍖�',
-					address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�',
-					zip: 200333
-					}, {
-					date: '2016-05-01',
-					name: '鐜嬪皬铏�',
-					province: '涓婃捣',
-					city: '鏅檧鍖�',
-					address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�',
-					zip: 200333
-					}, {
-					date: '2016-05-03',
-					name: '鐜嬪皬铏�',
-					province: '涓婃捣',
-					city: '鏅檧鍖�',
-					address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�',
-					zip: 200333
-				}]
+				tableData: [],
+				delPersonModel: false,
+				selection: []
 			}
 		},
 		created(){
 			
 		},
 		mounted(){
-			
+			this.getPost();
 		},
 		components: {
-			saveDialog
+			saveDialog,importTable
 		},
 		methods: {
-			departmentSubmit() {
-				this.departmentVisible=false;  //閮ㄩ棬璋冩暣
+			getExport() {
+				this.$HTTP.get(`/api/blade-system/post/export-post?`+this.$TOOL.qsStringify(this.postSearchData)).then(res=> {
+					if(res.code == 200) {
+						window.open(res.data.link);
+					}
+				})
+			},
+			delData(type) {
+				this.$HTTP.post(`/api/blade-system/post/remove?ids=${this.selectId}&type=${type}`).then(res=> {
+					if(res.code == 200) {
+						this.$message.success("鎿嶄綔鎴愬姛");
+						this.delPersonModel = false;
+						this.selectId = "";
+						this.getPost();
+					}
+				})
+			},
+			postHandleSuccess() {
+				this.getPost();
+			},
+			getPost() {  //宀椾綅
+				this.$HTTP.get(`/api/blade-system/post/page?`+this.$TOOL.qsStringify(this.postSearchData)).then(res=> {
+					if(res.code == 200) {
+						this.tableData = res.data.records;
+						this.totle = res.data.total;
+					}
+				})
 			},
 			//娣诲姞
 			addPerson(){
@@ -188,17 +155,23 @@
 					this.$refs.saveDialog.open('show').setData(row)
 				})
 			},
-			handleSelectionChange() {},
-			delPerson() {},
-			changeDepartment() {
-				this.departmentVisible = true;
+			handleSelectionChange(selection) {
+				this.selection = selection;
 			},
-			changeTab(name) {
-				if(name == 1) {
-					this.leftActive = true;
-				}else {
-					this.leftActive = false;
+			delPerson() {
+				if(this.selection.length == 0) {
+					this.$message({
+			          message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�',
+			          type: 'warning'
+			        });
+			        return;
 				}
+				var selStr = "";
+				this.selection.map(item=> {
+					selStr += item.id + ","
+				})
+				this.selectId = selStr.replace(/,$/, '');
+				this.delPersonModel = true;
 			},
 			handleSizeChange(val) {
 				console.log(`姣忛〉 ${val} 鏉);
@@ -306,4 +279,43 @@
 	.multipleTableRef {
 		margin-bottom: 8px;
 	}
+	.footerDiv {
+		text-align: center;
+	}
+	.delBtn {
+	    color: #fff;
+	    width: 112px;
+	    height: 32px;
+	    display: inline-block;
+	    color: #fa554c;
+	    background-color: #fff;
+	    border: 1px solid #fdbbb7;
+	    text-align: center;
+	    line-height: 32px;
+	    cursor: pointer;
+	}
+	.delBtn:nth-child(1) {
+		margin-right:4px;
+	}
+	.delBtn:hover {
+		background-color: #f34d5b;
+	    border-color: #f34d5b;
+	    color: #fff;
+	}
+	.delIcon {
+		color: #fff;
+	    background: red;
+	    border-radius: 50%; 
+	    display: inline-block;
+	    width: 20px;
+	    height: 20px;
+	    font-size: 14px;
+	    text-align: center;
+	    line-height: 20px;
+	    margin-right: 6px;
+	}
+	.exportBtn {
+		margin-left:8px;
+		margin-right:8px;
+	}
 </style>

--
Gitblit v1.9.3