保安服务企业管理-验收版本
liuyg
2021-09-11 fea9917f175270b98de9335206d1395bfa90e3e3
Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/zhba_enterprises_ys
9 files modified
20072 ■■■■ changed files
package-lock.json 15244 ●●●●● patch | view | raw | blame | history
src/views/dispatch/dispatch.vue 1135 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperable.vue 1078 ●●●● patch | view | raw | blame | history
src/views/recruitmentManagement/index.vue 393 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/car.vue 563 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.vue 601 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.vue 434 ●●●● patch | view | raw | blame | history
src/views/workreport/data.js 10 ●●●● patch | view | raw | blame | history
src/views/workreport/workreport.vue 614 ●●●● patch | view | raw | blame | history
package-lock.json
Diff too large
src/views/dispatch/dispatch.vue
@@ -1,69 +1,61 @@
<template>
  <basic-container>
    <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>
            <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>
                    <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>
                <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>
            <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>
    <span v-else-if="typeTABS.prop === 'tab2'">
      <avue-crud
        :option="option1"
@@ -92,536 +84,553 @@
        </template>
      </avue-crud>
    </span> -->
      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
    </div>
  </basic-container>
</template>
            <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
        </div>
    </basic-container>
</template>
<script>
import {
  getdata,
  adddata,
  update,
  remove,
  getdata1,
  adddata1,
  update1,
  remove1,
    getdata,
    adddata,
    update,
    remove,
    getdata1,
    adddata1,
    update1,
    remove1,
} from "@/api/dispatch/dispatch";
import { mapGetters } from "vuex";
import { mapState } from "vuex";
export default {
  data() {
    return {
      typeTABS: {}, //标签页
      deptId: "",
      optionTABS: {
        column: [
          {
            icon: "el-icon-info",
            label: "派遣服务公司登记",
            prop: "tab1",
          },
          {
            icon: "el-icon-info",
            label: "派遣记录",
            prop: "tab2",
          },
          // {
          //   icon: "el-icon-info",
          //   label: "选项卡3",
          //   prop: "tab3",
          // },
        ],
      },
    data () {
        return {
            typeTABS: {}, //标签页
            deptId: "",
            optionTABS: {
                column: [
                    {
                        icon: "el-icon-info",
                        label: "派遣服务公司登记",
                        prop: "tab1",
                    },
                    {
                        icon: "el-icon-info",
                        label: "派遣记录",
                        prop: "tab2",
                    },
                    // {
                    //   icon: "el-icon-info",
                    //   label: "选项卡3",
                    //   prop: "tab3",
                    // },
                ],
            },
      loading: true, //派遣服务公司登记
      selectionList: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      excelBox: false,
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "模板上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            loading: true, //派遣服务公司登记
            selectionList: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            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,
        index: true,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 623,
        menuWidth: 160,
        align: "center",
        selection: true,
        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",
            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,
                    },
                ],
            },
            // 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",
            option: {
                tip: false,
                // card: true,
                index: true,
                searchSize: "mini",
                searchMenuSpan: 6,
                height: 623,
                menuWidth: 160,
                align: "center",
                addTitle: "信息采集",
                addBtnText: "信息采集",
                editBtnText: "修改",
                selection: true,
                column: [
                    //派遣服务公司登记
                    {
                        label: "派遣单位名称",
                        prop: "name",
                        search: true,
                        searchLabelWidth: 110,
                        overHidden: true,
                        searchSpan: 4,
                        width: 210,
                        // span: 12,
                        labelWidth: 118,
                    },
                    {
                        label: "派遣单位地址",
                        prop: "address",
                        search: false,
                        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: "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,
                    },
                    {
                        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",
                            },
                        ],
                    }
                ],
            },
            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,
          },
        ],
      },
    };
  },
  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"]),
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
        };
    },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    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"]),
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        ids1 () {
            let ids1 = [];
            this.selectionList1.forEach((ele) => {
                ids1.push(ele.id);
            });
            return ids1.join(",");
        },
        ...mapState({
      userInfo: (state) => state.user.userInfo,
            userInfo: (state) => state.user.userInfo,
        })
  },
  methods: {
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        this.loading = false;
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣服务公司登记
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad(this.page, this.query);
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad(this.page, this.query);
      //   this.$message.success("页码" + val);
    },
    rowSave(form, done, loading) {
      form["deptId"] = this.userInfo.dept_id;
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    methods: {
        handleChangeTABS (column) {
            this.typeTABS = column;
            if (column.prop == "tab1") {
                this.loading1 = false;
                this.onLoad(this.page);
            } else if (column.prop == "tab2") {
                this.loading = false;
                this.onLoad1(this.page1); //第二个表格不会自动执行
            }
            // this.$message.success(JSON.stringify(column));
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        //派遣服务公司登记
        sizeChange (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            // this.getData();
            this.onLoad(this.page, this.query);
            //   this.$message.success("行数" + val);
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec.toggleSelection();
        });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    rowClick(row) {
      // console.log(row);
      window.localStorage.setItem("paqiandata", JSON.stringify(row));
      this.$router.push({
        path: "/dispatchChild",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { rowdispatch: "fromDispatch" },
        // 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;
        currentChange (val) {
            this.page1.currentPage = val;
            // this.getData();
            this.onLoad(this.page, this.query);
            //   this.$message.success("页码" + val);
        },
        rowSave (form, done, loading) {
            form["deptId"] = this.userInfo.dept_id;
            adddata(form).then(
                (res) => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
            // }
        },
        searchChange (params, done) {
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        rowUpdate (row, index, done, loading) {
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crudrec.toggleSelection();
                });
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        rowClick (row) {
            // console.log(row);
            window.localStorage.setItem("paqiandata", JSON.stringify(row));
            this.$router.push({
                path: "/dispatchChild",
                // redirect: { name: "foo" },
                // query: { row: row },
                query: { rowdispatch: "fromDispatch" },
                // 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,
        };
      }
            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);
            console.log(values);
      getdata(
        page.currentPage,
        page.pageSize,
        // 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]["tenantName"] = that.userInfo.user_name;
        }
        window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
        this.loading = false;
      });
    },
            getdata(
                page.currentPage,
                page.pageSize,
                // 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]["tenantName"] = that.userInfo.user_name;
                }
                window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
                this.loading = false;
            });
        },
    handleTemplate() {
      window.open(`/api/dispatcherUnit/export-template`);
        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();
        },
    },
    handleImport() {
      this.excelBox = true;
    mounted () {
        this.typeTABS = this.optionTABS.column[0];
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
  },
  mounted() {
    this.typeTABS = this.optionTABS.column[0];
  },
};
</script>
<style lang="scss">
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
// .el-card__body {
//   padding-bottom: 5px !important;
@@ -632,6 +641,6 @@
//   padding: 0 !important;
// }
.el-collapse-item {
  padding-top: 15px !important;
    padding-top: 15px !important;
}
</style>
</style>
src/views/dispatch/dispatchChildoperable.vue
@@ -1,568 +1,568 @@
<template>
  <basic-container>
    <div class="dispatchChildoperable">
      <avue-crud
        :option="option1"
        :data="data1"
        :page.sync="page1"
        ref="crudrec1"
        v-model="form"
        :table-loading="loading1"
        :before-open="beforeOpen"
        @row-save="rowSave1"
        @search-change="searchChange1"
        @search-reset="searchReset1"
        @row-update="rowUpdate1"
        @row-del="rowDel1"
        @selection-change="selectionChange1"
        @refresh-change="refreshChange1"
      >
      </avue-crud>
    </div>
  </basic-container>
</template>
    <basic-container>
        <div class="dispatchChildoperable">
            <avue-crud :option="option1"
                       :data="data1"
                       :page.sync="page1"
                       ref="crudrec1"
                       v-model="form"
                       :table-loading="loading1"
                       :before-open="beforeOpen"
                       @row-save="rowSave1"
                       @search-change="searchChange1"
                       @search-reset="searchReset1"
                       @row-update="rowUpdate1"
                       @row-del="rowDel1"
                       @selection-change="selectionChange1"
                       @refresh-change="refreshChange1">
            </avue-crud>
        </div>
    </basic-container>
</template>
<script>
import {
  getdata1,
  adddata1,
  update1,
  remove1,
  getDispatcherUnitByDeptId,
  overDispatcher,
    getdata1,
    adddata1,
    update1,
    remove1,
    getDispatcherUnitByDeptId,
    overDispatcher,
} from "@/api/dispatch/dispatch";
import { update, getListByDeptId } from "@/api/system/user";
import { mapState } from "vuex";
export default {
  data() {
    return {
      deptCategory: "",
      deptId: "",
    data () {
        return {
            deptCategory: "",
            deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      form: {},
      query1: {},
      data1: [],
      option1: {
        // card: true,
        tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        height: 623,
        cellBtn: false,
        delBtnText: "结束派遣",
        editBtnText: "变更派遣",
        // addBtn: false,
        // menuWidth: 160,
        align: "center",
        selection: true,
        column: [
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            // addDisplay: false,
            // editDisplay: false,
            // search: true,
            // labelWidth: 120,
            // searchSpan: 4,
            minWidth: 210,
            addDisplay: false,
            editDisplay: false,
          },
          {
            label: "保安公司",
            prop: "deptId",
            search: true,
            labelWidth: 120,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["userIds"],
            props: {
              label: "title",
              value: "id",
            loading1: true, //派遣记录
            selectionList1: [],
            page1: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            width: 180,
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣单位",
            prop: "dispatcherUnitId",
            labelWidth: 120,
            searchLabelWidth: 80,
            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
            props: {
              label: "name",
              value: "id",
            form: {},
            query1: {},
            data1: [],
            option1: {
                // card: true,
                tip: false,
                index: true,
                // menu: false,
                searchSize: "mini",
                searchMenuSpan: 8,
                height: 623,
                cellBtn: false,
                delBtnText: "结束派遣",
                editBtnText: "更改派遣",
                addTitle: "记录添加",
                addBtnText: "记录添加",
                // addBtn: false,
                // menuWidth: 160,
                align: "center",
                selection: true,
                column: [
                    // },
                    {
                        label: "派遣单位",
                        prop: "dispatcherCompany",
                        // addDisplay: false,
                        // editDisplay: false,
                        // search: true,
                        // labelWidth: 120,
                        // searchSpan: 4,
                        minWidth: 210,
                        addDisplay: false,
                        editDisplay: false,
                    },
                    {
                        label: "保安公司",
                        prop: "deptId",
                        search: true,
                        labelWidth: 120,
                        type: "tree",
                        searchSpan: 4,
                        cascaderItem: ["userIds"],
                        props: {
                            label: "title",
                            value: "id",
                        },
                        width: 180,
                        dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
                        rules: [
                            {
                                required: true,
                                message: "请输入保安公司",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "派遣单位",
                        prop: "dispatcherUnitId",
                        labelWidth: 120,
                        searchLabelWidth: 80,
                        // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
                        props: {
                            label: "name",
                            value: "id",
                        },
                        hide: true,
                        searchSpan: 4,
                        search: true,
                        overHidden: true,
                        type: "tree",
                        rules: [
                            {
                                required: true,
                                message: "请输入派遣单位",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "保安员",
                        prop: "userIds",
                        type: "tree",
                        width: 70,
                        labelWidth: 120,
                        searchSpan: 3,
                        search: true,
                        hide: true,
                        props: {
                            label: "realName",
                            value: "id",
                        },
                        // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
                        dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
                        dicData: [],
                        rules: [
                            {
                                required: true,
                                message: "请选择保安",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "保安员",
                        prop: "securityName",
                        type: "tree",
                        width: 70,
                        labelWidth: 120,
                        addDisplay: false,
                        editDisplay: false,
                        // hide: true,
                        // props: {
                        //   label: "realName",
                        //   value: "id",
                        // },
                        // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
                        dicData: [],
                        rules: [
                            {
                                required: true,
                                message: "请选择保安",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "身份证",
                        prop: "idCardNo",
                        labelWidth: 120,
                        overHidden: true,
                        addDisplay: false,
                        editDisplay: false,
                        rules: [
                            {
                                required: true,
                                message: "请输入身份证",
                                trigger: "click",
                            },
                        ],
                        // search: true,
                        // searchSpan: 4,
                        // overHidden: true
                    },
                    // {
                    //     label: "派遣人",
                    //     prop: "dispatcher",
                    //     // search: true,
                    //     // searchSpan: 4,
                    //     // overHidden: true
                    // },
                    {
                        label: "派遣地址",
                        prop: "dispatcheraddress",
                        labelWidth: 120,
                        rules: [
                            {
                                required: true,
                                message: "请输入派遣地址",
                                trigger: "click",
                            },
                        ],
                        // search: true,
                        // searchSpan: 4,
                        // overHidden: true
                    },
                    {
                        label: "开始时间",
                        prop: "dispatchertime",
                        type: "date",
                        format: "yyyy-MM-dd",
                        valueFormat: "yyyy-MM-dd",
                        labelWidth: 120,
                        searchSpan: 5,
                        // search: true,
                        overHidden: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入派遣时间",
                                trigger: "click",
                            },
                        ],
                        // overHidden: true
                    },
                    {
                        label: "结束时间",
                        prop: "endTime",
                        type: "date",
                        format: "yyyy-MM-dd",
                        valueFormat: "yyyy-MM-dd",
                        labelWidth: 120,
                        overHidden: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入结束时间",
                                trigger: "click",
                            },
                        ],
                        // search: true,
                        // searchSpan: 4,
                        // overHidden: true
                    },
                    {
                        label: "派遣时间",
                        prop: "releaseTimeRange",
                        type: "date",
                        format: "yyyy-MM-dd",
                        valueFormat: "yyyy-MM-dd",
                        searchValue: [this.getStartTime(), this.getEndTime()],
                        searchRange: true,
                        searchSpan: 5,
                        hide: true,
                        addDisplay: false,
                        editDisplay: false,
                        viewDisplay: false,
                        search: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入时间",
                                trigger: "blur",
                            },
                        ],
                    },
                ],
            },
            hide: true,
            searchSpan: 4,
            search: true,
            overHidden: true,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请输入派遣单位",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "userIds",
            type: "tree",
            width: 70,
            labelWidth: 120,
            searchSpan: 3,
            search: true,
            hide: true,
            props: {
              label: "realName",
              value: "id",
            },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "securityName",
            type: "tree",
            width: 70,
            labelWidth: 120,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
            // props: {
            //   label: "realName",
            //   value: "id",
            // },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证",
            prop: "idCardNo",
            labelWidth: 120,
            overHidden: true,
            addDisplay: false,
            editDisplay: false,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "开始时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
              },
            ],
            // overHidden: true
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            search: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
        ],
      },
    };
  },
  created() {
    if (this.userInfo.role_name == "保安公司管理员") {
      console.log("保安公司管理员登入");
      const deptColumn = this.findObject(this.option1.column, "deptId");
      deptColumn.search = false;
    } else {
      const deptColumn = this.findObject(
        this.option1.column,
        "dispatcherUnitId"
      );
      deptColumn.search = false;
    }
  },
  computed: {
    // },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
        };
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
    deps() {
      return this.form.deptId;
    },
  },
  methods: {
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    rowSave1(form, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
    created () {
        if (this.userInfo.role_name == "保安公司管理员") {
            console.log("保安公司管理员登入");
            const deptColumn = this.findObject(this.option1.column, "deptId");
            deptColumn.search = false;
        } else {
            const deptColumn = this.findObject(
                this.option1.column,
                "dispatcherUnitId"
            );
            deptColumn.search = false;
        }
      );
      // }
    },
    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) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    computed: {
        // },
        ids1 () {
            let ids1 = [];
            this.selectionList1.forEach((ele) => {
                ids1.push(ele.id);
            });
            return ids1.join(",");
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定结束当前派遣?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return overDispatcher(row);
        })
        .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);
        ...mapState({
            userInfo: (state) => state.user.userInfo,
        }),
        deps () {
            return this.form.deptId;
        },
    },
    // beforeOpen(done, type) {
    //   var that = this;
    //   if (["add", "edit", "view"].includes(type)) {
    //     if (this.userInfo.role_name == "保安公司管理员") {
    //       getListByDeptId(that.userInfo.dept_id).then((res) => {
    //         const userColumn = that.findObject(this.option1.column, "userIds");
    //         userColumn.dicData = res.data.data;
    //       });
    //     }
    methods: {
        handleChangeTABS (column) {
            this.typeTABS = column;
            if (column.prop == "tab1") {
                this.loading1 = false;
                // this.onLoad(this.page);
            } else if (column.prop == "tab2") {
                // this.loading = false;
                console.log(document.getElementsByClassName("el-card__body")[0]);
                this.onLoad1(this.page1); //第二个表格不会自动执行
            }
            // this.$message.success(JSON.stringify(column));
        },
        //派遣记录
        sizeChange1 (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            // this.getData();
            this.onLoad1(this.page1, this.query1);
        },
        currentChange1 (val) {
            this.page1.currentPage = val;
            // this.getData();
            this.onLoad1(this.page1, this.query1);
        },
        rowSave1 (form, done, loading) {
            // if(this.userInfo.role_name=="保安公司管理员"){
            //   const userColumn = this.findObject(this.option1.column, "userIds");
            //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
            // }
            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) {
            // if(this.userInfo.role_name=="保安公司管理员"){
            //   const userColumn = this.findObject(this.option1.column, "userIds");
            //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
            // }
            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 overDispatcher(row);
                })
                .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);
        },
        // beforeOpen(done, type) {
        //   var that = this;
        //   if (["add", "edit", "view"].includes(type)) {
        //     if (this.userInfo.role_name == "保安公司管理员") {
        //       getListByDeptId(that.userInfo.dept_id).then((res) => {
        //         const userColumn = that.findObject(this.option1.column, "userIds");
        //         userColumn.dicData = res.data.data;
        //       });
        //     }
        //   }
        //   this.initFlag = true;
        //   done();
        // },
        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 "";
        },
        //
        onLoad1 (page, params = {}) {
            this.loading1 = true;
            var values;
            //默认查询已派遣的,派遣结束,未派遣的不显示
            params["dispatch"] = 0;
            const { releaseTimeRange } = this.query1;
            if (releaseTimeRange) {
                values = {
                    ...params,
                    beginTime: releaseTimeRange[0],
                    overTime: releaseTimeRange[1],
                    ...this.query,
                };
                values.releaseTimeRange = null;
            } else {
                values = {
                    ...params,
                    ...this.query,
                };
            }
            if (this.userInfo.role_name == "保安公司管理员") {
                const deptColumn = this.findObject(this.option1.column, "deptId");
                deptColumn.disabled = true;
                // deptColumn.search = false; //会报错
                deptColumn.value = this.userInfo.dept_id;
                this.initData(2);
            } else {
                this.initData(1);
            }
            getdata1(
                page.currentPage,
                page.pageSize,
                // Object.assign(params, this.query)
                values
            ).then((res) => {
                const data = res.data.data;
                this.page1.total = data.total;
                this.data1 = data.records;
                this.loading1 = false;
                // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
                console.log(this.form, 111111);
            });
        },
        initData (type) {
            var that = this;
            if (type == 1) {
                getDispatcherUnitByDeptId(null).then((res) => {
                    const dispatcherUnitIdColumn = that.findObject(
                        this.option1.column,
                        "dispatcherUnitId"
                    );
                    console.log(res.data.data, 111);
                    dispatcherUnitIdColumn.dicData = res.data.data;
                });
            }
            if (type == 2) {
                getDispatcherUnitByDeptId(that.userInfo.dept_id).then((res) => {
                    const dispatcherUnitIdColumn = that.findObject(
                        this.option1.column,
                        "dispatcherUnitId"
                    );
                    dispatcherUnitIdColumn.dicData = res.data.data;
                });
                getListByDeptId(that.userInfo.dept_id, 1).then((res) => {
                    const userIdsColumn = that.findObject(this.option1.column, "userIds");
                    userIdsColumn.dicData = res.data.data;
                });
            }
        },
    },
    //  watch: {
    //   // "form.deptId"() {
    //   //   this.initData();
    //   // }
    //   deps(){
    //     console.log(this.deps,5646646)
    //   }
    //   this.initFlag = true;
    //   done();
    // },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    mounted () {
        this.onLoad1(this.page1, this.query1);
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      var values;
      //默认查询已派遣的,派遣结束,未派遣的不显示
      params["dispatch"] = 0;
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
        };
      }
      if (this.userInfo.role_name == "保安公司管理员") {
        const deptColumn = this.findObject(this.option1.column, "deptId");
        deptColumn.disabled = true;
        // deptColumn.search = false; //会报错
        deptColumn.value = this.userInfo.dept_id;
        this.initData(2);
      } else {
        this.initData(1);
      }
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query)
        values
      ).then((res) => {
        const data = res.data.data;
        this.page1.total = data.total;
        this.data1 = data.records;
        this.loading1 = false;
        // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
        console.log(this.form, 111111);
      });
    },
    initData(type) {
      var that = this;
      if (type == 1) {
        getDispatcherUnitByDeptId(null).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this.option1.column,
            "dispatcherUnitId"
          );
          console.log(res.data.data, 111);
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
      }
      if (type == 2) {
        getDispatcherUnitByDeptId(that.userInfo.dept_id).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this.option1.column,
            "dispatcherUnitId"
          );
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
        getListByDeptId(that.userInfo.dept_id,1).then((res) => {
          const userIdsColumn = that.findObject(this.option1.column, "userIds");
          userIdsColumn.dicData = res.data.data;
        });
      }
    },
  },
  //  watch: {
  //   // "form.deptId"() {
  //   //   this.initData();
  //   // }
  //   deps(){
  //     console.log(this.deps,5646646)
  //   }
  // },
  mounted() {
    this.onLoad1(this.page1, this.query1);
  },
};
</script>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
    padding-top: 15px !important;
}
</style>
</style>
src/views/recruitmentManagement/index.vue
@@ -1,219 +1,218 @@
<template>
  <basic-container>
    <div class="recruitmentManagement">
      <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"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
    <basic-container>
        <div class="recruitmentManagement">
            <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">
                <template slot="menuLeft">
                    <el-button type="danger"
                               size="small"
                               plain
                               icon="el-icon-delete"
                               @click="handleDelete">删 除
                    </el-button>
                </template>
            </avue-crud>
        </div>
    </basic-container>
</template>
<script>
import { data, column } from "./data";
import {
  getdata,
  adddata,
  update,
  remove,
    getdata,
    adddata,
    update,
    remove,
} from "@/api/recruitmentManagement/recruitmentManagement";
export default {
  data() {
    return {
      loading: true,
      selectionList: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      option: {
        // card: true,
        tip: false,
        viewBtn: true,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 583,
        border: true,
        menuWidth: 210,
        align: "center",
        selection: true,
        column: column,
      },
    };
  },
  computed: {
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    data () {
        return {
            loading: true,
            selectionList: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            query: {},
            data: [],
            option: {
                // card: true,
                tip: false,
                viewBtn: true,
                searchSize: "mini",
                searchMenuSpan: 6,
                height: 583,
                border: true,
                menuWidth: 210,
                align: "center",
                selection: true,
                column: column,
                addTitle: "信息新增",
                addBtnText: "信息新增",
                editBtnText: "修改",
            },
        };
    },
  },
  methods: {
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      this.getData();
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      this.getData();
      //   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++) {
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    computed: {
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      //   }
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    rowUpdate(row, index, done, loading) {
      console.log(row);
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    methods: {
        sizeChange (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            this.getData();
            //   this.$message.success("行数" + val);
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
        currentChange (val) {
            this.page1.currentPage = val;
            this.getData();
            //   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++) {
            adddata(form).then(
                (res) => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
            //   }
        },
        searchChange (params, done) {
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        rowUpdate (row, index, done, loading) {
            console.log(row);
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crudrec.toggleSelection();
                });
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.loading = true;
            getdata(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query)
            ).then((res) => {
                // console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                console.log(this.data);
                this.loading = false;
            });
        },
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    mounted () {
        // this.Ourdata = data;
        // this.getData();
        // this.onLoad(this.page);
        // var dept_id = JSON.parse(
        //   window.localStorage.getItem("saber-userInfo")
        // ).content.dept_id;
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec.toggleSelection();
        });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getdata(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data);
        this.loading = false;
      });
    },
  },
  mounted() {
    // this.Ourdata = data;
    // this.getData();
    // this.onLoad(this.page);
    // var dept_id = JSON.parse(
    //   window.localStorage.getItem("saber-userInfo")
    // ).content.dept_id;
  },
};
</script>
<style lang="scss">
.recruitmentManagement {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
// .el-card__body {
//   padding-bottom: 5px !important;
@@ -223,4 +222,4 @@
// .el-tag--light {
//   padding: 0 !important;
// }
</style>
</style>
src/views/securityEquipment/car.vue
@@ -1,61 +1,52 @@
<template>
  <basic-container>
    <div class="equipments">
      <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"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
          <el-button
            style="display:none"
            type="success"
            size="small"
            plain
            icon="el-icon-upload2"
            @click="handleImport"
            >批量导入
          </el-button>
        </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>
    </div>
  </basic-container>
    <basic-container>
        <div class="equipments">
            <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">
                <template slot="menuLeft">
                    <el-button type="danger"
                               size="small"
                               plain
                               icon="el-icon-delete"
                               @click="handleDelete">删 除
                    </el-button>
                    <el-button style="display:none"
                               type="success"
                               size="small"
                               plain
                               icon="el-icon-upload2"
                               @click="handleImport">批量导入
                    </el-button>
                </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>
        </div>
    </basic-container>
</template>
<script>
@@ -63,246 +54,248 @@
import { getdata, adddata, update, remove } from "@/api/car/car";
export default {
  props: ["fromDeptId"],
  data() {
    return {
      excelBox: false,
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "文件上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
    props: ["fromDeptId"],
    data () {
        return {
            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/car/import-examSubject",
                    },
                    {
                        label: "模板下载",
                        prop: "excelTemplate",
                        formslot: true,
                        span: 24,
                    },
                ],
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/car/import-examSubject",
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
      loading: true,
      selectionList: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      option: {
        // card: true,
        tip: false,
        index: true,
        searchSize: "mini",
        border: true,
        searchMenuSpan: 6,
        height: 583,
        menuWidth: 160,
        align: "center",
        selection: true,
        labelWidth:110,
        column: column,
      },
    };
  },
  computed: {
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
            loading: true,
            selectionList: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            query: {},
            data: [],
            option: {
                // card: true,
                tip: false,
                index: true,
                searchSize: "mini",
                border: true,
                searchMenuSpan: 6,
                height: 583,
                menuWidth: 160,
                align: "center",
                selection: true,
                labelWidth: 110,
                addTitle: "信息采集",
                addBtnText: "信息采集",
                column: column,
            },
        };
    },
  },
  methods: {
    handleImport() {
      this.excelBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    handleTemplate() {
      window.open(`/api/car/export-template`);
    },
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      this.getData();
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      this.getData();
      //   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++) {
      // console.log
      // form["deptId"] = form.tenantName;
      // delete form.tenantName;
      // console.log(form);
      if (this.fromDeptId != undefined) {
        form["deptId"] = this.fromDeptId;
      }
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    computed: {
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      //   }
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    rowUpdate(row, index, done, loading) {
      // console.log(row);
      // row["deptId"] = row.tenantName;
      // delete row.tenantName;
      if (this.fromDeptId != undefined) {
        row["deptId"] = this.fromDeptId;
      }
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    methods: {
        handleImport () {
            this.excelBox = true;
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
        uploadAfter (res, done, loading, column) {
            window.console.log(column);
            this.excelBox = false;
            this.refreshChange();
            done();
        },
        handleTemplate () {
            window.open(`/api/car/export-template`);
        },
        sizeChange (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            this.getData();
            //   this.$message.success("行数" + val);
        },
        currentChange (val) {
            this.page1.currentPage = val;
            this.getData();
            //   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++) {
            // console.log
            // form["deptId"] = form.tenantName;
            // delete form.tenantName;
            // console.log(form);
            if (this.fromDeptId != undefined) {
                form["deptId"] = this.fromDeptId;
            }
            adddata(form).then(
                (res) => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
            //   }
        },
        searchChange (params, done) {
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        rowUpdate (row, index, done, loading) {
            // console.log(row);
            // row["deptId"] = row.tenantName;
            // delete row.tenantName;
            if (this.fromDeptId != undefined) {
                row["deptId"] = this.fromDeptId;
            }
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crudrec.toggleSelection();
                });
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.loading = true;
            // console.log(params.deptId);
            if (this.fromDeptId != undefined) {
                params["deptId"] = this.fromDeptId;
                this.option.column[4].search = false;
                this.option.column[4].hide = true;
                this.option.column[4].addDisplay = false;
                this.option.column[4].editDisplay = false;
            } else {
                this.option.column[4].search = true;
                this.option.column[4].hide = false;
                this.option.column[4].addDisplay = true;
                this.option.column[4].editDisplay = true;
            }
            getdata(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query)
            ).then((res) => {
                // console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                console.log(this.data);
                this.loading = false;
            });
        },
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    mounted () {
        // this.Ourdata = data;
        // this.getData();
        // this.onLoad(this.page);
        // var dept_id = JSON.parse(
        //   window.localStorage.getItem("saber-userInfo")
        // ).content.dept_id;
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec.toggleSelection();
        });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      // console.log(params.deptId);
      if (this.fromDeptId != undefined) {
        params["deptId"] = this.fromDeptId;
        this.option.column[4].search = false;
        this.option.column[4].hide = true;
        this.option.column[4].addDisplay = false;
        this.option.column[4].editDisplay = false;
      } else {
        this.option.column[4].search = true;
        this.option.column[4].hide = false;
        this.option.column[4].addDisplay = true;
        this.option.column[4].editDisplay = true;
      }
      getdata(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data);
        this.loading = false;
      });
    },
  },
  mounted() {
    // this.Ourdata = data;
    // this.getData();
    // this.onLoad(this.page);
    // var dept_id = JSON.parse(
    //   window.localStorage.getItem("saber-userInfo")
    // ).content.dept_id;
  },
};
</script>
<style lang="scss">
.equipments {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
// .el-card__body {
//   padding-bottom: 5px !important;
@@ -312,4 +305,4 @@
// .el-tag--light {
//   padding: 0 !important;
// }
</style>
</style>
src/views/securityEquipment/equipments.vue
@@ -1,60 +1,51 @@
<template>
  <basic-container>
    <div class="equipments">
      <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"
      >
        <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>
      </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>
    </div>
  </basic-container>
    <basic-container>
        <div class="equipments">
            <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">
                <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>
            </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>
        </div>
    </basic-container>
</template>
<script>
@@ -62,266 +53,268 @@
import { getdata, adddata, update, remove } from "@/api/equipments/equipments";
export default {
  props: ["fromDeptId"],
  data() {
    return {
      excelBox: false,
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "文件上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
    props: ["fromDeptId"],
    data () {
        return {
            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/equipage/import-equipage",
                    },
                    {
                        label: "模板下载",
                        prop: "excelTemplate",
                        formslot: true,
                        span: 24,
                    },
                ],
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/equipage/import-equipage",
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
      loading: true,
      selectionList: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      option: {
        // card: true,
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 583,
        index: true,
        menuWidth: 160,
        border: true,
        align: "center",
        selection: true,
        column: column,
        labelWidth: 110,
      },
    };
  },
  computed: {
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
            loading: true,
            selectionList: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            query: {},
            data: [],
            option: {
                // card: true,
                tip: false,
                searchSize: "mini",
                searchMenuSpan: 6,
                height: 583,
                index: true,
                menuWidth: 160,
                border: true,
                align: "center",
                selection: true,
                column: column,
                labelWidth: 110,
                addTitle: "信息采集",
                addBtnText: "信息采集",
            },
        };
    },
  },
  methods: {
    handleImport() {
      this.excelBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    handleTemplate() {
      window.open(`/api/equipage/export-template`);
    },
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      this.getData();
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      this.getData();
      //   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++) {
      // console.log(form, "12135");
      // form["deptId"] = form.tenantName;
      // delete form.tenantName;
      // console.log(this.fromDeptId);
      // console.log(form);
      if (this.fromDeptId != undefined) {
        form["deptId"] = this.fromDeptId;
      }
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    computed: {
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      //   }
    },
    searchChange(params, done) {
      params = JSON.parse(JSON.stringify(params));
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    rowUpdate(row, index, done, loading) {
      // row["deptId"] = row.tenantName;
      // delete row.tenantName;
      // console.log(row.deptId);
      if (this.fromDeptId != undefined) {
        row["deptId"] = this.fromDeptId;
      }
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    methods: {
        handleImport () {
            this.excelBox = true;
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
        uploadAfter (res, done, loading, column) {
            window.console.log(column);
            this.excelBox = false;
            this.refreshChange();
            done();
        },
        handleTemplate () {
            window.open(`/api/equipage/export-template`);
        },
        sizeChange (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            this.getData();
            //   this.$message.success("行数" + val);
        },
        currentChange (val) {
            this.page1.currentPage = val;
            this.getData();
            //   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++) {
            // console.log(form, "12135");
            // form["deptId"] = form.tenantName;
            // delete form.tenantName;
            // console.log(this.fromDeptId);
            // console.log(form);
            if (this.fromDeptId != undefined) {
                form["deptId"] = this.fromDeptId;
            }
            adddata(form).then(
                (res) => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
            //   }
        },
        searchChange (params, done) {
            params = JSON.parse(JSON.stringify(params));
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        rowUpdate (row, index, done, loading) {
            // row["deptId"] = row.tenantName;
            // delete row.tenantName;
            // console.log(row.deptId);
            if (this.fromDeptId != undefined) {
                row["deptId"] = this.fromDeptId;
            }
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crudrec.toggleSelection();
                });
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.loading = true;
            // console.log(params.deptId);
            if (this.fromDeptId != undefined) {
                params["deptId"] = this.fromDeptId;
                for (let k in this.option.column) {
                    if (this.option.column[k].prop == "deptId") {
                        this.option.column[k].search = false;
                        this.option.column[k].hide = true;
                        this.option.column[k].addDisplay = false;
                        this.option.column[k].editDisplay = false;
                    }
                }
                // this.option.column[4].  = false;
                // this.option.column[6].search = false;
                // this.option.column[6].hide = true;
                // this.option.column[6].addDisplay = false;
                // this.option.column[6].editDisplay = false;
            } else {
                for (let k in this.option.column) {
                    if (this.option.column[k].prop == "deptId") {
                        this.option.column[k].search = true;
                        this.option.column[k].hide = false;
                        this.option.column[k].addDisplay = true;
                        this.option.column[k].editDisplay = true;
                    }
                }
                // this.option.column[4].search = true;
                //   this.option.column[6].search = true;
                // this.option.column[6].hide = false;
                // this.option.column[6].addDisplay = true;
                // this.option.column[6].editDisplay = true;
            }
            getdata(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query)
            ).then((res) => {
                // console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                console.log(this.data);
                this.loading = false;
            });
        },
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    mounted () {
        // this.Ourdata = data;
        // this.getData();
        // this.onLoad(this.page);
        // var dept_id = JSON.parse(
        //   window.localStorage.getItem("saber-userInfo")
        // ).content.dept_id;
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec.toggleSelection();
        });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      // console.log(params.deptId);
      if (this.fromDeptId != undefined) {
        params["deptId"] = this.fromDeptId;
        for (let k in this.option.column) {
          if (this.option.column[k].prop == "deptId") {
            this.option.column[k].search = false;
            this.option.column[k].hide = true;
            this.option.column[k].addDisplay = false;
            this.option.column[k].editDisplay = false;
          }
        }
        // this.option.column[4].  = false;
        // this.option.column[6].search = false;
        // this.option.column[6].hide = true;
        // this.option.column[6].addDisplay = false;
        // this.option.column[6].editDisplay = false;
      } else {
        for (let k in this.option.column) {
          if (this.option.column[k].prop == "deptId") {
            this.option.column[k].search = true;
            this.option.column[k].hide = false;
            this.option.column[k].addDisplay = true;
            this.option.column[k].editDisplay = true;
          }
        }
        // this.option.column[4].search = true;
        //   this.option.column[6].search = true;
        // this.option.column[6].hide = false;
        // this.option.column[6].addDisplay = true;
        // this.option.column[6].editDisplay = true;
      }
      getdata(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data);
        this.loading = false;
      });
    },
  },
  mounted() {
    // this.Ourdata = data;
    // this.getData();
    // this.onLoad(this.page);
    // var dept_id = JSON.parse(
    //   window.localStorage.getItem("saber-userInfo")
    // ).content.dept_id;
  },
};
</script>
<style lang="scss">
.equipments {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
// .el-card__body {
//   padding-bottom: 5px !important;
@@ -331,4 +324,4 @@
// .el-tag--light {
//   padding: 0 !important;
// }
</style>
</style>
src/views/securityEquipment/gun.vue
@@ -1,34 +1,30 @@
<template>
  <basic-container>
    <div class="equipments">
      <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"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>
    </div>
  </basic-container>
    <basic-container>
        <div class="equipments">
            <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">
                <template slot="menuLeft">
                    <el-button type="danger"
                               size="small"
                               plain
                               icon="el-icon-delete"
                               @click="handleDelete">删 除
                    </el-button>
                </template>
            </avue-crud>
        </div>
    </basic-container>
</template>
<script>
@@ -36,204 +32,206 @@
import { getdata, adddata, update, remove } from "@/api/gun/gun";
export default {
  props: ["fromDeptId"],
  data() {
    return {
      loading: true,
      selectionList: [],
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query: {},
      data: [],
      option: {
        // card: true,
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 583,
        index: true,
        menuWidth: 160,
        align: "center",
        border: true,
        selection: true,
        labelWidth:110,
        column: column,
      },
    };
  },
  computed: {
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    props: ["fromDeptId"],
    data () {
        return {
            loading: true,
            selectionList: [],
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            query: {},
            data: [],
            option: {
                // card: true,
                tip: false,
                searchSize: "mini",
                searchMenuSpan: 6,
                height: 583,
                index: true,
                menuWidth: 160,
                align: "center",
                border: true,
                selection: true,
                labelWidth: 110,
                column: column,
                addTitle: "信息采集",
                addBtnText: "信息采集",
            },
        };
    },
  },
  methods: {
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      this.getData();
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      this.getData();
      //   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"] = form.tenantName;
      // delete form.tenantName;
      if (this.fromDeptId != undefined) {
        form["deptId"] = this.fromDeptId;
      }
      adddata(form).then(
        (res) => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    computed: {
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      //   }
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    rowUpdate(row, index, done, loading) {
      // console.log(row);
      // row["deptId"] = row.tenantName;
      // delete row.tenantName;
      if (this.fromDeptId != undefined) {
        row["deptId"] = this.fromDeptId;
      }
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
    methods: {
        sizeChange (val) {
            this.page1.currentPage = 1;
            this.page1.pageSize = val;
            this.getData();
            //   this.$message.success("行数" + val);
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
        currentChange (val) {
            this.page1.currentPage = val;
            this.getData();
            //   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"] = form.tenantName;
            // delete form.tenantName;
            if (this.fromDeptId != undefined) {
                form["deptId"] = this.fromDeptId;
            }
            adddata(form).then(
                (res) => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
            //   }
        },
        searchChange (params, done) {
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        rowUpdate (row, index, done, loading) {
            // console.log(row);
            // row["deptId"] = row.tenantName;
            // delete row.tenantName;
            if (this.fromDeptId != undefined) {
                row["deptId"] = this.fromDeptId;
            }
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crudrec.toggleSelection();
                });
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.loading = true;
            // console.log(params.deptId);
            if (this.fromDeptId != undefined) {
                params["deptId"] = this.fromDeptId;
                this.option.column[5].search = false;
                this.option.column[5].hide = true;
                this.option.column[5].addDisplay = false;
                this.option.column[5].editDisplay = false;
            } else {
                this.option.column[5].search = true;
                this.option.column[5].hide = false;
                this.option.column[5].addDisplay = true;
                this.option.column[5].editDisplay = true;
            }
            getdata(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query)
            ).then((res) => {
                // console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                console.log(this.data);
                this.loading = false;
            });
        },
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    mounted () {
        // this.Ourdata = data;
        // this.getData();
        // this.onLoad(this.page);
        // var dept_id = JSON.parse(
        //   window.localStorage.getItem("saber-userInfo")
        // ).content.dept_id;
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec.toggleSelection();
        });
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      // console.log(params.deptId);
      if (this.fromDeptId != undefined) {
        params["deptId"] = this.fromDeptId;
        this.option.column[5].search = false;
        this.option.column[5].hide = true;
        this.option.column[5].addDisplay = false;
        this.option.column[5].editDisplay = false;
      } else {
        this.option.column[5].search = true;
        this.option.column[5].hide = false;
        this.option.column[5].addDisplay = true;
        this.option.column[5].editDisplay = true;
      }
      getdata(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data);
        this.loading = false;
      });
    },
  },
  mounted() {
    // this.Ourdata = data;
    // this.getData();
    // this.onLoad(this.page);
    // var dept_id = JSON.parse(
    //   window.localStorage.getItem("saber-userInfo")
    // ).content.dept_id;
  },
};
</script>
<style lang="scss">
.equipments {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
    width: 100%;
    height: 100%;
    //   border: 1px solid #000;
    box-sizing: border-box;
}
// .el-card__body {
//   padding-bottom: 5px !important;
@@ -243,4 +241,4 @@
// .el-tag--light {
//   padding: 0 !important;
// }
</style>
</style>
src/views/workreport/data.js
@@ -62,13 +62,13 @@
    viewDisplay: false,
},
{
    label: "汇报内容",
    label: "工作内容",
    prop: "content",
    type: "textarea",
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        message: "请输入工作内容",
        trigger: "blur"
    }]
},
@@ -205,7 +205,7 @@
//     viewDisplay: false,
// },
{
    label: "汇报内容",
    label: "工作内容",
    prop: "content",
    type: "textarea",
    // editDisplay: false,
@@ -213,7 +213,7 @@
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        message: "请输入工作内容",
        trigger: "blur"
    }]
},
@@ -229,4 +229,4 @@
    }]
}
]
]
src/views/workreport/workreport.vue
@@ -1,334 +1,330 @@
<template>
  <basic-container class="workreply">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      ref="crud"
      @row-del="rowDel"
      v-model="form"
      :permission="permissionList"
      @row-update="rowUpdate"
      @row-save="rowSave"
      :before-open="beforeOpen"
      @filter="filterChange"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          icon="el-icon-delete"
          plain
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
      <!-- <template slot-scope="{ type, size, row }" slot="menu">
    <basic-container class="workreply">
        <avue-crud :option="option"
                   :table-loading="loading"
                   :data="data"
                   :page.sync="page"
                   ref="crud"
                   @row-del="rowDel"
                   v-model="form"
                   :permission="permissionList"
                   @row-update="rowUpdate"
                   @row-save="rowSave"
                   :before-open="beforeOpen"
                   @filter="filterChange"
                   @search-change="searchChange"
                   @search-reset="searchReset"
                   @selection-change="selectionChange"
                   @current-change="currentChange"
                   @size-change="sizeChange"
                   @refresh-change="refreshChange"
                   @on-load="onLoad">
            <template slot="menuLeft">
                <el-button type="danger"
                           size="small"
                           icon="el-icon-delete"
                           plain
                           @click="handleDelete">删 除
                </el-button>
            </template>
            <!-- <template slot-scope="{ type, size, row }" slot="menu">
        <el-button :size="size" :type="type" @click="handleUploadPage(row)"
          >附件上传
        </el-button>
      </template> -->
    </avue-crud>
  </basic-container>
        </avue-crud>
    </basic-container>
</template>
<script>
import { workreportColumn } from "./data";
import { mapState } from "vuex";
import {
  getListPage,
  remove,
  update,
  add,
  getDetail,
    getListPage,
    remove,
    update,
    add,
    getDetail,
} from "@/api/workreport/workreport";
import { getDept } from "@/api/system/dept";
import { mapGetters } from "vuex";
import { getDictionaryBiz } from "@/api/system/dict";
export default {
  data() {
    return {
      form: {},
      query: {},
      loading: true,
      deptCategory: "",
      deptId: "",
      userId: "",
      permissionAdd: "",
      permissionDelete: "",
      permissionView: "",
      permissionEdit: "",
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      selectionList: [],
      option: {
        height: "auto",
        calcHeight: 30,
        dialogWidth: 1000,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: true, //liu
        addBtnText: "发起",
        saveBtnText: "发起",
        addTitle: "发起",
        index: true,
        stripe: true,
        viewBtn: true,
        selection: true,
        excelBtn: false,
        menuWidth: 320,
        dialogClickModal: false,
        column: workreportColumn,
      },
      data: [],
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.workreport_add, false),
        viewBtn: this.vaildData(this.permission.workreport_view, false),
        delBtn: this.vaildData(this.permission.workreport_delete, false),
        editBtn: this.vaildData(this.permission.workreport_edit, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
  },
  mounted() {},
  methods: {
    rowSave(row, done, loading) {
      row.receivedIds = row.receivedIds.join(",");
      row.deptId = this.deptId;
      row.userId = this.userId;
      add(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdate(row, index, done, loading) {
      row.deptId = this.deptId;
      row.userId = this.userId;
      // row.receivedIds = row.receivedIds.join(",");
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
        });
      }
      done();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.deptId = JSON.parse(
        window.localStorage.getItem("saber-userInfo")
      ).content.dept_id;
      this.userId = JSON.parse(
        window.localStorage.getItem("saber-userInfo")
      ).content.user_id;
      var that = this;
      // getDept(this.deptId).then((res) => {
      //   var deptCategory = res.data.data.deptCategory;
      //   deptCategory == 1
      //     ? (that.deptCategory = true)
      //     : (that.deptCategory = false);
      //1:保安公司  2:公安  3:培训公司
      if (
        this.userInfo.role_name == "保安公司管理员" ||
        this.userInfo.role_name == "保安"
      ) {
        const column = that.findObject(that.option.column, "category");
        var code = {
          code: "securityWorkReportCategory",
    data () {
        return {
            form: {},
            query: {},
            loading: true,
            deptCategory: "",
            deptId: "",
            userId: "",
            permissionAdd: "",
            permissionDelete: "",
            permissionView: "",
            permissionEdit: "",
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
            selectionList: [],
            option: {
                height: "auto",
                calcHeight: 30,
                dialogWidth: 1000,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                border: true, //liu
                addTitle: "工作汇报",
                addBtnText: "工作汇报",
                saveBtnText: "发起",
                index: true,
                stripe: true,
                viewBtn: true,
                selection: true,
                excelBtn: false,
                menuWidth: 320,
                dialogClickModal: false,
                column: workreportColumn,
            },
            data: [],
        };
        getDictionaryBiz(code).then((res) => {
          // column.dicUrl = "/api/blade-system/dict-biz/dictionary?code=securityWorkReportCategory";
          column.dicData = res.data.data;
          const columnReceivedIds = that.findObject(
            that.option.column,
            "receivedIds"
          );
          columnReceivedIds.dicUrl =
            "/api/blade-system/dept/lazy-tree-users?type={{key}}&deptId=" +
            that.userInfo.dept_id;
          params["deptId"] = this.deptId;
          params["userId"] = this.userId;
          // }
          let values = {
            ...params,
          };
          this.loading = true;
          getListPage(page.currentPage, page.pageSize, values).then((res) => {
            const data = res.data.data;
            this.page.total = data.total;
            this.data = data.records;
            this.loading = false;
            this.selectionClear();
          });
        });
      } else if (this.userInfo.role_name == "公安管理员") {
        const column = that.findObject(that.option.column, "category");
        var code1 = { code: "workReportCategory" };
        getDictionaryBiz(code1).then((res) => {
          // column.dicUrl = "/api/blade-system/dict-biz/dictionary?code=workReportCategory";
          column.dicData = res.data.data;
          const columnReceivedIds = that.findObject(
            that.option.column,
            "receivedIds"
          );
          columnReceivedIds.dicUrl =
            "/api/blade-system/dept/lazy-tree-users?type={{key}}&deptId=" +
            that.userInfo.dept_id;
          params["deptId"] = this.deptId;
          params["userId"] = this.userId;
          // }
          let values = {
            ...params,
          };
          this.loading = true;
          getListPage(page.currentPage, page.pageSize, values).then((res) => {
            const data = res.data.data;
            this.page.total = data.total;
            this.data = data.records;
            this.loading = false;
            this.selectionClear();
          });
        });
      } else if (this.userInfo.role_name == "administrator") {
        getListPage(page.currentPage, page.pageSize, params).then((res) => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
          this.loading = false;
          this.selectionClear();
        });
      }
    },
  },
    computed: {
        ...mapGetters(["permission"]),
        permissionList () {
            return {
                addBtn: this.vaildData(this.permission.workreport_add, false),
                viewBtn: this.vaildData(this.permission.workreport_view, false),
                delBtn: this.vaildData(this.permission.workreport_delete, false),
                editBtn: this.vaildData(this.permission.workreport_edit, false),
            };
        },
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
        ...mapState({
            userInfo: (state) => state.user.userInfo,
        }),
    },
    mounted () { },
    methods: {
        rowSave (row, done, loading) {
            row.receivedIds = row.receivedIds.join(",");
            row.deptId = this.deptId;
            row.userId = this.userId;
            add(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowUpdate (row, index, done, loading) {
            row.deptId = this.deptId;
            row.userId = this.userId;
            // row.receivedIds = row.receivedIds.join(",");
            update(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        searchReset () {
            this.query = {};
            this.onLoad(this.page);
        },
        searchChange (params, done) {
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
            done();
        },
        selectionChange (list) {
            this.selectionList = list;
        },
        selectionClear () {
            this.selectionList = [];
            this.$refs.crud.toggleSelection();
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    this.$refs.crud.toggleSelection();
                });
        },
        beforeOpen (done, type) {
            if (["edit", "view"].includes(type)) {
                getDetail(this.form.id).then((res) => {
                    this.form = res.data.data;
                });
            }
            done();
        },
        currentChange (currentPage) {
            this.page.currentPage = currentPage;
        },
        sizeChange (pageSize) {
            this.page.pageSize = pageSize;
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.deptId = JSON.parse(
                window.localStorage.getItem("saber-userInfo")
            ).content.dept_id;
            this.userId = JSON.parse(
                window.localStorage.getItem("saber-userInfo")
            ).content.user_id;
            var that = this;
            // getDept(this.deptId).then((res) => {
            //   var deptCategory = res.data.data.deptCategory;
            //   deptCategory == 1
            //     ? (that.deptCategory = true)
            //     : (that.deptCategory = false);
            //1:保安公司  2:公安  3:培训公司
            if (
                this.userInfo.role_name == "保安公司管理员" ||
                this.userInfo.role_name == "保安"
            ) {
                const column = that.findObject(that.option.column, "category");
                var code = {
                    code: "securityWorkReportCategory",
                };
                getDictionaryBiz(code).then((res) => {
                    // column.dicUrl = "/api/blade-system/dict-biz/dictionary?code=securityWorkReportCategory";
                    column.dicData = res.data.data;
                    const columnReceivedIds = that.findObject(
                        that.option.column,
                        "receivedIds"
                    );
                    columnReceivedIds.dicUrl =
                        "/api/blade-system/dept/lazy-tree-users?type={{key}}&deptId=" +
                        that.userInfo.dept_id;
                    params["deptId"] = this.deptId;
                    params["userId"] = this.userId;
                    // }
                    let values = {
                        ...params,
                    };
                    this.loading = true;
                    getListPage(page.currentPage, page.pageSize, values).then((res) => {
                        const data = res.data.data;
                        this.page.total = data.total;
                        this.data = data.records;
                        this.loading = false;
                        this.selectionClear();
                    });
                });
            } else if (this.userInfo.role_name == "公安管理员") {
                const column = that.findObject(that.option.column, "category");
                var code1 = { code: "workReportCategory" };
                getDictionaryBiz(code1).then((res) => {
                    // column.dicUrl = "/api/blade-system/dict-biz/dictionary?code=workReportCategory";
                    column.dicData = res.data.data;
                    const columnReceivedIds = that.findObject(
                        that.option.column,
                        "receivedIds"
                    );
                    columnReceivedIds.dicUrl =
                        "/api/blade-system/dept/lazy-tree-users?type={{key}}&deptId=" +
                        that.userInfo.dept_id;
                    params["deptId"] = this.deptId;
                    params["userId"] = this.userId;
                    // }
                    let values = {
                        ...params,
                    };
                    this.loading = true;
                    getListPage(page.currentPage, page.pageSize, values).then((res) => {
                        const data = res.data.data;
                        this.page.total = data.total;
                        this.data = data.records;
                        this.loading = false;
                        this.selectionClear();
                    });
                });
            } else if (this.userInfo.role_name == "administrator") {
                getListPage(page.currentPage, page.pageSize, params).then((res) => {
                    const data = res.data.data;
                    this.page.total = data.total;
                    this.data = data.records;
                    this.loading = false;
                    this.selectionClear();
                });
            }
        },
    },
};
</script>
<style>
.workreply .el-card.is-never-shadow.avue-crud__search {
  width: calc(100% - 380px) !important;
  left: 200px !important;
    width: calc(100% - 380px) !important;
    left: 200px !important;
}
</style>