From c4e67a8942e514b65ab41bb19781d50576c15725 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 24 Sep 2021 19:56:52 +0800
Subject: [PATCH] 用户
---
src/views/dispatch/dispatch.vue | 582 +++++++++++++++++++++++++++++++++++----------------------
1 files changed, 358 insertions(+), 224 deletions(-)
diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 1148a09..806c805 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -1,35 +1,69 @@
<template>
- <div class="dispatch">
- <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
+ <basic-container>
+ <div class="dispatch">
+ <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
<span v-if="typeTABS.prop === 'tab1'"> -->
- <avue-crud
- :option="option"
- :data="data"
- :page.sync="page"
- ref="crudrec"
- @on-load="onLoad"
- :table-loading="loading"
- @row-save="rowSave"
- @search-change="searchChange"
- @search-reset="searchReset"
- @row-update="rowUpdate"
- @row-del="rowDel"
- @selection-change="selectionChange"
- @refresh-change="refreshChange"
- @row-click="rowClick"
- >
- <template slot="menuLeft">
- <el-button
- type="danger"
- size="small"
- plain
- icon="el-icon-delete"
- @click="handleDelete"
- >删 除
- </el-button>
- </template>
- </avue-crud>
- <!-- </span>
+ <avue-crud
+ :option="option"
+ :data="data"
+ :page.sync="page"
+ ref="crudrec"
+ @on-load="onLoad"
+ :table-loading="loading"
+ @row-save="rowSave"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @row-update="rowUpdate"
+ @row-del="rowDel"
+ @selection-change="selectionChange"
+ @refresh-change="refreshChange"
+ @row-click="rowClick"
+ >
+ <template slot="menuLeft">
+ <el-button
+ type="danger"
+ size="small"
+ plain
+ icon="el-icon-delete"
+ @click="handleDelete"
+ >删 除
+ </el-button>
+
+ <el-button
+ type="success"
+ size="small"
+ plain
+ icon="el-icon-upload2"
+ @click="handleImport"
+ >批量导入
+ </el-button>
+ </template>
+
+ <template slot-scope="{ row }" slot="jurisdiction">
+ {{ row.jurisdiction == -1 ? "" : row.jurisdiction }}
+ </template>
+ </avue-crud>
+
+ <el-dialog
+ title="派遣单位导入"
+ append-to-body
+ :visible.sync="excelBox"
+ width="555px"
+ >
+ <avue-form
+ :option="excelOption"
+ v-model="excelForm"
+ :upload-after="uploadAfter"
+ >
+ <template slot="excelTemplate">
+ <el-button type="primary" @click="handleTemplate">
+ 点击下载<i class="el-icon-download el-icon--right"></i>
+ </el-button>
+ </template>
+ </avue-form>
+ </el-dialog>
+
+ <!-- </span>
<span v-else-if="typeTABS.prop === 'tab2'">
<avue-crud
:option="option1"
@@ -58,12 +92,12 @@
</template>
</avue-crud>
</span> -->
- <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
- </div>
+ <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
+ </div>
+ </basic-container>
</template>
<script>
-import { data, column, column1 } from "./data";
import {
getdata,
adddata,
@@ -75,7 +109,7 @@
remove1,
} from "@/api/dispatch/dispatch";
import { mapGetters } from "vuex";
-
+import { mapState } from "vuex";
export default {
data() {
return {
@@ -110,6 +144,59 @@
},
query: {},
data: [],
+ excelBox: false,
+ excelForm: {},
+ excelOption: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "模板上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "模板上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/dispatcherUnit/import-dispatcherUnit",
+ },
+ // {
+ // label: "数据覆盖",
+ // prop: "isCovered",
+ // type: "switch",
+ // align: "center",
+ // width: 80,
+ // dicData: [
+ // {
+ // label: "否",
+ // value: 0,
+ // },
+ // {
+ // label: "是",
+ // value: 1,
+ // },
+ // ],
+ // value: 0,
+ // slot: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请选择是否覆盖",
+ // trigger: "blur",
+ // },
+ // ],
+ // },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
option: {
tip: false,
// card: true,
@@ -120,59 +207,187 @@
menuWidth: 160,
align: "center",
selection: true,
- column: column,
- // group: [
- // {
- // label: "基础信息",
- // prop: "baseInfo",
- // icon: "el-icon-user-solid",
- // column: [
- // {
- // label: "所属保安单位",
- // prop: "tenantId",
- // type: "tree",
- // dicUrl: "/api/blade-system/tenant/select",
- // props: {
- // label: "tenantName",
- // value: "tenantId",
- // },
- // hide: !website.tenantMode,
- // addDisplay: website.tenantMode,
- // editDisplay: website.tenantMode,
- // viewDisplay: website.tenantMode,
- // rules: [
- // {
- // required: true,
- // message: "请输入所属保安单位",
- // trigger: "click",
- // },
- // ],
- // span: 24,
- // },
- // ],
- // },
- // ],
+ column: [
+ //派遣服务公司登记
+ {
+ label: "派遣单位名称",
+ prop: "name",
+ search: true,
+ searchLabelWidth: 110,
+ overHidden: true,
+ searchSpan: 4,
+ width: 210,
+ // span: 12,
+ labelWidth: 118,
+ },
+ {
+ label: "保安公司",
+ prop: "deptId",
+ type: "tree",
+ overHidden: true,
+ dicUrl:
+ "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+ props: {
+ label: "title",
+ value: "id",
+ },
+ // hide: true,
+ // hide: !website.tenantMode,
+ // addDisplay: website.tenantMode,
+ // editDisplay: website.tenantMode,
+ // viewDisplay: website.tenantMode,
+ rules: [
+ {
+ required: true,
+ message: "请选择保安公司",
+ trigger: "click",
+ },
+ ],
+ labelWidth: 118,
+ width: 230,
+ searchLabelWidth: 80,
+ search: true,
+ searchSpan: 4,
+ // editDisplay: false,
+ // addDisplay: false,
+ // hide: true,
+ // span: 11,
+ },
+ {
+ label: "保安服务类型",
+ prop: "serveType",
+ // search: true,
+ searchLabelWidth: 110,
+ searchSpan: 4,
+ overHidden: true,
+ // span: 12,
+ labelWidth: 118,
+ },
+ {
+ label: "合同生效时间",
+ prop: "releaseTimeRange",
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ searchValue: [this.getStartTime(), this.getEndTime()],
+ searchRange: true,
+ searchSpan: 5,
+ searchLabelWidth: 110,
+ hide: true,
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入时间",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "所属辖区",
+ prop: "jurisdiction",
+ hide: true,
+ searchLabelWidth: 80,
+ search: true,
+ searchSpan: 4,
+ overHidden: true,
+ labelWidth: 118,
+ type: "tree",
+ dicUrl: "/api/jurisdiction/lazy-tree",
+ props: {
+ label: "title",
+ value: "id",
+ },
+ checkStrictly: true,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: "请选择所属辖区",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "所属辖区",
+ prop: "jurisdictionName",
+ // multiple: true,
+ searchLabelWidth: 80,
+ addDisplay: false,
+ editDisplay: false,
+ viewDisplay: false,
+ overHidden: true,
+ labelWidth: 118,
+ type: "tree",
+ dicUrl: "/api/jurisdiction/lazy-tree",
+ props: {
+ label: "title",
+ value: "id",
+ },
+ checkStrictly: true,
+ slot: true,
+ rules: [
+ {
+ required: true,
+ message: "请选择所属辖区",
+ trigger: "click",
+ },
+ ],
+ },
+ // {
+ // label: " 派遣人数",
+ // prop: "num",
+ // labelWidth: 118,
+ // },
+ {
+ label: "合同开始时间",
+ prop: "startTime",
+ labelWidth: 118,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ // search: true,
+ // searchSpan: 4,
+ // overHidden: true
+ },
+ {
+ label: "合同结束时间",
+ prop: "endTime",
+ labelWidth: 118,
+ type: "date",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ // search: true,
+ // searchSpan: 4,
+ // overHidden: true
+ },
+ {
+ label: " 负责人",
+ prop: "linkman",
+ labelWidth: 118,
+ },
+ {
+ label: "负责人联系方式",
+ prop: "phone",
+ labelWidth: 118,
+ width: 110,
+ },
+ ],
},
- // loading1: true, //派遣记录
- // selectionList1: [],
- // page1: {
- // pageSize: 10,
- // currentPage: 1,
- // total: 0,
- // },
- // query1: {},
- // data1: [],
- // option1: {
- // card: true,
- // searchSize: "mini",
- // searchMenuSpan: 6,
- // height: 547,
- // menuWidth: 160,
- // align: "center",
- // selection: true,
- // column: column1,
- // },
};
+ },
+ created() {
+ if (this.userInfo.role_name == "保安公司管理员") {
+ const deptColumn = this.findObject(this.option.column, "deptId");
+ deptColumn.search = false;
+ deptColumn.addDisplay = false;
+ deptColumn.editDisplay = false;
+ deptColumn.viewDisplay = false;
+ deptColumn.hide = true;
+ }
},
computed: {
...mapGetters(["userInfo"]),
@@ -190,6 +405,9 @@
});
return ids1.join(",");
},
+ ...mapState({
+ userInfo: (state) => state.user.userInfo,
+ })
},
methods: {
handleChangeTABS(column) {
@@ -218,13 +436,7 @@
// this.$message.success("页码" + val);
},
rowSave(form, done, loading) {
- // var that = this;
- // var form = this.data[0];
- // delete form.id;
- // for (var k = 0; k < 13; k++) {
form["deptId"] = this.userInfo.dept_id;
- // form["tenantName"] = form.this.userInfo.user_name;
-
adddata(form).then(
(res) => {
this.onLoad(this.page);
@@ -252,7 +464,6 @@
this.onLoad(this.page);
},
rowUpdate(row, index, done, loading) {
- console.log(row);
update(row).then(
() => {
this.onLoad(this.page);
@@ -324,157 +535,80 @@
// params: { row: row.identificationnumber },
});
},
+ getStartTime() {
+ if (
+ this.$route.query.startTime != undefined &&
+ this.$route.query.startTime != null &&
+ this.$route.query.startTime != ""
+ ) {
+ return this.$route.query.startTime;
+ }
+ return "";
+ },
+ getEndTime() {
+ if (
+ this.$route.query.endTime != undefined &&
+ this.$route.query.endTime != null &&
+ this.$route.query.endTime != ""
+ ) {
+ return this.$route.query.endTime;
+ }
+ return "";
+ },
onLoad(page, params = {}) {
var that = this;
this.loading = true;
+
+ var values;
+ const { releaseTimeRange } = this.query;
+ if (releaseTimeRange) {
+ values = {
+ ...params,
+ beginTime: releaseTimeRange[0],
+ overTime: releaseTimeRange[1],
+ ...this.query,
+ };
+ // values.releaseTimeRange = null;
+ } else {
+ values = {
+ ...params,
+ ...this.query,
+ };
+ }
+
+ console.log(values);
+
getdata(
page.currentPage,
page.pageSize,
- Object.assign(params, this.query)
+ // Object.assign(params, this.query)
+ values
).then((res) => {
// console.log(res);
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
for (var k in this.data) {
- this.data[k]["deptId"] = that.userInfo.dept_id;
+ // this.data[k]["deptId"] = that.userInfo.dept_id;
this.data[k]["tenantName"] = that.userInfo.user_name;
}
window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
this.loading = false;
});
},
- //派遣服务公司登记
- //派遣记录
- // sizeChange1(val) {
- // this.page1.currentPage = 1;
- // this.page1.pageSize = val;
- // // this.getData();
- // this.onLoad1(this.page1, this.query1);
- // // this.$message.success("行数" + val);
- // },
- // currentChange1(val) {
- // this.page1.currentPage = val;
- // // this.getData();
- // this.onLoad1(this.page1, this.query1);
- // // this.$message.success("页码" + val);
- // },
- // rowSave1(form, done, loading) {
- // var that = this;
- // var form = this.data1[0];
- // delete form.id;
- // for (var k = 0; k < 13; k++) {
- // adddata1(form).then(
- // (res) => {
- // this.onLoad1(this.page1);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
- // done();
- // },
- // (error) => {
- // window.console.log(error);
- // loading();
- // }
- // );
- // }
- // },
- // searchChange1(params, done) {
- // this.query1 = params;
- // this.page1.currentPage = 1;
- // this.onLoad1(this.page1, params);
- // done();
- // },
- // searchReset1() {
- // this.query = {};
- // this.onLoad1(this.page1);
- // },
- // rowUpdate1(row, index, done, loading) {
- // console.log(row);
- // update1(row).then(
- // () => {
- // this.onLoad1(this.page1);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
- // done();
- // },
- // (error) => {
- // window.console.log(error);
- // loading();
- // }
- // );
- // },
- // rowDel1(row) {
- // this.$confirm("确定将选择数据删除?", {
- // confirmButtonText: "确定",
- // cancelButtonText: "取消",
- // type: "warning",
- // })
- // .then(() => {
- // return remove1(row.id);
- // })
- // .then(() => {
- // this.onLoad1(this.page1);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
- // });
- // },
- // selectionChange1(list) {
- // this.selectionList1 = list;
- // console.log(this.selectionList1.length);
- // },
- // handleDelete1() {
- // console.log(this.selectionList1);
- // if (this.selectionList1.length === 0) {
- // this.$message.warning("请选择至少一条数据");
- // return;
- // }
- // this.$confirm("确定将选择数据删除?", {
- // confirmButtonText: "确定",
- // cancelButtonText: "取消",
- // type: "warning",
- // })
- // .then(() => {
- // return remove1(this.ids1);
- // })
- // .then(() => {
- // this.onLoad1(this.page1);
- // this.$message({
- // type: "success",
- // message: "操作成功!",
- // });
- // this.$refs.crudrec1.toggleSelection();
- // });
- // },
- // refreshChange1() {
- // // console.log(4534)
- // this.onLoad1(this.page1, this.query1);
- // },
-
- // //
- // onLoad1(page, params = {}) {
- // this.loading1 = true;
- // // console.log(page);
- // getdata1(
- // page.currentPage,
- // page.pageSize,
- // Object.assign(params, this.query)
- // ).then((res) => {
- // // console.log(res);
- // const data = res.data.data;
- // this.page1.total = data.total;
- // this.data1 = data.records;
- // console.log(this.data1, 1);
- // this.loading1 = false;
- // });
- // },
- //派遣记录
+ handleTemplate() {
+ window.open(`/api/dispatcherUnit/export-template`);
+ },
+ handleImport() {
+ this.excelBox = true;
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
},
mounted() {
this.typeTABS = this.optionTABS.column[0];
--
Gitblit v1.9.3