From 170800582ce66c770a56e69f6d8b44c38f0728bf Mon Sep 17 00:00:00 2001 From: 叶松 <2217086471@qq.com> Date: 星期一, 27 十一月 2023 22:29:21 +0800 Subject: [PATCH] 安全积分超市对接 --- web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue | 220 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 214 insertions(+), 6 deletions(-) diff --git a/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue index 16d20ed..57960a2 100644 --- a/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue +++ b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue @@ -1,6 +1,28 @@ <template> <div class="main" style="height:89%"> <div class="main_header"> + <div class="header_item"> + <span class="header_label">人员类型:</span> + <el-select v-model="search.userType" clearable placeholder="请选择人员类型" @change="changeType"> + <el-option + v-for="item in optionsType" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + <div class="header_item"> + <span class="header_label">人员姓名:</span> + <el-select v-model="search.userId" filterable clearable placeholder="请选择人员名称"> + <el-option + v-for="item in optionsUser" + :key="item.userId" + :label="item.realName" + :value="item.userId"> + </el-option> + </el-select> + </div> <div class="header_item"> <span class="header_label">时间范围:</span> <el-date-picker @@ -15,6 +37,7 @@ </div> <div class="header_item"> <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> + <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('export')" @click="exportFiles">导出Excel</el-button> </div> </div> @@ -29,8 +52,19 @@ </template> </el-table-column> <el-table-column prop="createTime" label="时间" align="center" width="150"></el-table-column> - <el-table-column prop="dangerLocation" label="积分分值" align="center" ></el-table-column> - <el-table-column prop="title" label="说明" align="center" show-overflow-tooltip></el-table-column> + <el-table-column prop="realName" label="人员姓名" align="center" ></el-table-column> + <el-table-column prop="integralWater" label="积分分值" align="center" > + <template #default="{row}"> + -{{row.integralWater}} + </template> + </el-table-column> + <el-table-column prop="remark" label="说明" align="center" show-overflow-tooltip></el-table-column> + <el-table-column label="操作" align="center"> + <template #default="{ row }"> + <!-- <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button> --> + <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button> + </template> + </el-table-column> </el-table> </div> <div class="main_footer"> @@ -45,12 +79,51 @@ :total="total"> </el-pagination> </div> + <el-dialog + class="prop_dialog" + :title="asyncTitle ? '新增' : '修改'" + :close-on-click-modal="false" + :visible.sync="asyncVisible" + width="35%"> + <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> + <el-form-item label="类型:" prop="userType"> + <el-select v-model="ruleForm.userType" clearable placeholder="请选择人员类型" @change="changeType"> + <el-option + v-for="item in optionsType" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="人员姓名:" prop="userId"> + <el-select v-model="ruleForm.userId" filterable clearable placeholder="请选择人员名称"> + <el-option + v-for="item in optionsUser" + :key="item.userId" + :label="item.realName" + :value="item.userId"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="扣除积分:" prop="integralWater"> + <el-input v-model="ruleForm.integralWater" :size="size" type="number" clearable placeholder="请输入扣除积分"></el-input> + </el-form-item> + <el-form-item label="说明:" prop="remark"> + <el-input v-model="ruleForm.remark" type="textarea" :rows="5" :size="size" clearable placeholder="请输入说明"></el-input> + </el-form-item> + </el-form> + <div slot="footer"> + <el-button @click="asyncVisible = false">取 消</el-button> + <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> + </div> + </el-dialog> </div> </template> <script> import { buttonPinia } from '../../../../pinia/index'; -import { changeSize } from '../../../../plugins/public'; // 导入节流、动态切换组件尺寸方法 +import { changeSize,throttle,downFiles } from '../../../../plugins/public'; // 导入节流、动态切换组件尺寸方法 export default { data() { return { @@ -61,10 +134,44 @@ total: 0, disabled:false, loading: false, - dataList: [], //举报隐患信息列表 + dataList: [], //安全积分超市 + optionsUser:[],//所有人员 imageList:[], asyncTitle: true, // 对话框title 新增:true 修改:false asyncVisible: false, // 添加 修改对话框 + ruleForm: {}, // 按钮表单 + rules: { + userType: [{ + required: true, + message: '请选择人员类型', + trigger: 'change' + }], + userId: [{ + required: true, + message: '请选择人员姓名', + trigger: 'change' + }], + integralWater: [{ + required: true, + message: '请输入扣除积分', + trigger: 'blur' + }], + remark: [{ + required: true, + message: '请输入说明', + trigger: 'blur' + }], + }, + optionsType:[ + { + label:'劳务人员', + value:2 + }, + { + label:'管理人员', + value:1 + } + ] } }, watch: { @@ -83,6 +190,85 @@ } }, methods: { + //通过修改人员类型获取对应的人员名称 + changeType(val){ + this.$set(this.search,'userId','') + this.$set(this.ruleForm,'userId','') + this.$api.Engineer.getPersonsList({userType:val}).then(res=>{ + if(res.statusMsg === 'ok'){ + this.optionsUser = res.data + }else{ + this.$message.warning(res.statusMsg) + } + }) + }, + // 新增按钮信息 + insertProp() { + this.asyncTitle = true; + this.asyncVisible = true; + }, + // 修改按钮信息 + updateProp(row) { + this.asyncTitle = false; + this.asyncVisible = true; + this.ruleForm = row + }, + // 删除按钮信息 + deleteInfo(row) { + this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.$api.Safety.deleteMarketInfo({id: row.id}) + .then(res => { + if(res.statusMsg === 'ok') { + this.searchButtonInfo(true); + this.$message.success("删除成功!"); + } else { + this.$message.warning(res.statusMsg); + } + }) + }) + .catch(() => { + this.$message.warning("您已取消"); + }) + }, + // 提交添加按钮信息 + submitInsert: throttle(function() { + this.$refs.ruleForm.validate((valid) => { + if(valid) { + const params = Object.assign({}, this.ruleForm); + this.$api.Safety.addUpdateMarketInfo(params).then((res) => { + if(res.statusMsg === 'ok') { + this.asyncVisible = false; + this.searchButtonInfo(true); + this.$message.success('添加成功!'); + } else { + this.$message.warning(res.statusMsg); + } + }) + } + }) + }, 3000), + // 提交修改按钮信息 + submitUpdate: throttle(function() { + this.$refs.ruleForm.validate((valid) => { + if(valid) { + const params = Object.assign({}, this.ruleForm); + this.$api.Safety.addUpdateMarketInfo(params).then((res) => { + if(res.statusMsg === 'ok') { + this.asyncVisible = false; + this.searchButtonInfo(true); + this.$message.success('修改成功!'); + } else { + this.$message.warning(res.statusMsg); + } + }) + } + }) + }, 3000), // 查询按钮列表信息 searchButtonInfo(bol) { if(bol) { @@ -96,7 +282,7 @@ params.endTime = this.search.time&&this.search.time[1] delete params.time this.loading = true; - this.$api.Safety.searchHiddenLists(params).then((res) => { + this.$api.Safety.searchMarketLists(params).then((res) => { if(res.statusMsg === 'ok') { this.total = res.data.total; this.dataList = res.data.list; @@ -105,7 +291,29 @@ }) }, //导出excel - exportFiles(){}, + exportFiles(){ + let params = {} + params.startTime = this.search.time&&this.search.time[0] + params.endTime = this.search.time&&this.search.time[1] + delete params.time + this.functionLoading(); + this.$api.Safety.exportMarketFiles(params).then(res => { + downFiles(res, '安全积分超市信息', 'xls') + this.loadingView.close() + }) + .catch(() => { + this.loadingView.close(); + }) + }, + // 转圈圈 + functionLoading() { + this.loadingView = this.$loading({ + lock: true, + text: '请稍后...', + spinner: 'el-icon-loading', + background: 'rgba(0, 0, 0, 0.7)' + }); + }, // 判断按钮权限信息 showButton(str) { const pinia = buttonPinia(); -- Gitblit v1.9.3