保安监管系统-验收版本
liuyg
2021-09-15 f27d9c925a8b55b76d8abae1d2816bfc1f114024
验收文档
32 files modified
5 files added
5178 ■■■■■ changed files
public/img/a.jpg patch | view | raw | blame | history
src/api/management/user.js 5 ●●●●● patch | view | raw | blame | history
src/api/performance/performance.js 68 ●●●●● patch | view | raw | blame | history
src/api/resource/attachOnce.js 26 ●●●●● patch | view | raw | blame | history
src/api/securityCompany/companyDetails.js 14 ●●●●● patch | view | raw | blame | history
src/page/index/top/index.vue 249 ●●●● patch | view | raw | blame | history
src/router/views/index.js 137 ●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 5 ●●●●● patch | view | raw | blame | history
src/views/commandQuery/taskDistribution.vue 907 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/branchOffice.vue 8 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/cancellationOfFiling.vue 8 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/crossRegion.vue 8 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityGuard.vue 8 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityPermit.vue 6 ●●●● patch | view | raw | blame | history
src/views/licenseApproval/securityTraining.vue 8 ●●●● patch | view | raw | blame | history
src/views/management/computents/honor.vue 86 ●●●● patch | view | raw | blame | history
src/views/management/peopleDetails.vue 74 ●●●● patch | view | raw | blame | history
src/views/permit/permit.vue 4 ●●●● patch | view | raw | blame | history
src/views/qualificationExamination/registrationTrainingQuery.vue 36 ●●●●● patch | view | raw | blame | history
src/views/record/record.vue 4 ●●●● patch | view | raw | blame | history
src/views/recordk/recordk.vue 4 ●●●● patch | view | raw | blame | history
src/views/resource/attach.vue 778 ●●●● patch | view | raw | blame | history
src/views/resource/attachCopy.vue 421 ●●●●● patch | view | raw | blame | history
src/views/resource/attachOnce copy.vue 421 ●●●●● patch | view | raw | blame | history
src/views/resource/attachOnce.vue 338 ●●●●● patch | view | raw | blame | history
src/views/revoke/revoke.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/armed.vue 80 ●●●● patch | view | raw | blame | history
src/views/securityCompany/column.js 79 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails.vue 41 ●●●● patch | view | raw | blame | history
src/views/securityCompany/computents/punish.vue 58 ●●●● patch | view | raw | blame | history
src/views/securityCompany/confess.vue 71 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/regulatoryInformation.vue 6 ●●●● patch | view | raw | blame | history
src/views/securityCompany/security.vue 99 ●●●● patch | view | raw | blame | history
src/views/securityCompany/securityCrossRegion.vue 71 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/train.vue 71 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/data.js 716 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/register.vue 259 ●●●● patch | view | raw | blame | history
public/img/a.jpg
src/api/management/user.js
@@ -119,13 +119,14 @@
  })
}
export const updateHold = (hold, cardid) => {
export const updateHold = (hold, cardid, holdv) => {
  return request({
    url: '/api/blade-user/updateUser',
    method: 'get',
    params: {
      hold,
      cardid
      cardid,
      holdv
    }
  })
}
src/api/performance/performance.js
New file
@@ -0,0 +1,68 @@
import request from '@/router/axios';
export const getER = (securityNumber) => {
    return request({
        url: '/api//qrCode/getQrCodeBase64',
        method: 'get',
        params: {
            securityNumber
        }
    })
}
export const trackRecordpage = (current, size, params) => {
    return request({
        url: '/api/performance/page',
        method: 'get',
        params: {
            ...params,
            current,
            size,
        }
    })
}
// export const getPerformanceInfo = (securityid) => {
//     return request({
//         url: '/api/performance/page',
//         method: 'get',
//         params: {
//             securityid
//         }
//     })
// }
// export const getPerformanceInfo = (securityid) => {
//     return request({
//         url: '/api/performance/detail',
//         method: 'get',
//         params: {
//             securityid
//         }
//     })
// }
export const trackRecordadd = (row) => {
    return request({
        url: '/api/performance/submit',
        method: 'post',
        data: row
    })
}
export const trackRecordupdate = (row) => {
    return request({
        url: '/api/performance/submit',
        method: 'post',
        data: row
    })
}
export const trackRecordremove = (ids) => {
    return request({
        url: '/api/performance/remove',
        method: 'post',
        params: {
            ids,
        }
    })
}
src/api/resource/attachOnce.js
@@ -1,5 +1,31 @@
import request from '@/router/axios';
export const getTemplate = (params, current, size) => {
  return request({
    url: '/api/licet/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    }
  })
}
export const getUseInfor = (params, current, size) => {
  return request({
    url: '/api/licetuser/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    }
  })
}
export const getList = (current, size, params, cardid, type) => {
  return request({
    url: '/api/blade-resource/attach/list',
src/api/securityCompany/companyDetails.js
@@ -76,3 +76,17 @@
    }
  })
}
export const usejurisdiction = () => {
  return request({
    url: '/api/jurisdiction/lazy-tree',
    method: 'get',
    // params: {
    //   ...params,
    //   current,
    //   size,
    //   creditcode,
    // }
  })
}
src/page/index/top/index.vue
@@ -1,95 +1,111 @@
<template>
  <div class="avue-top">
    <div class="top-bar__left">
      <div class="avue-breadcrumb"
           :class="[{ 'avue-breadcrumb--active': isCollapse }]"
           v-if="showCollapse">
        <i class="icon-navicon"
           @click="setCollapse"></i>
      <div
        class="avue-breadcrumb"
        :class="[{ 'avue-breadcrumb--active': isCollapse }]"
        v-if="showCollapse"
      >
        <i class="icon-navicon" @click="setCollapse"></i>
      </div>
    </div>
    <div class="top-bar__title">
      <div class="top-bar__item top-bar__item--show"
           v-if="showMenu">
      <div class="top-bar__item top-bar__item--show" v-if="showMenu">
        <top-menu ref="topMenu"></top-menu>
      </div>
      <span class="top-bar__item"
            v-if="showSearch">
      <span class="top-bar__item" v-if="showSearch">
        <top-search></top-search>
      </span>
    </div>
    <div class="top-bar__right">
      <el-tooltip v-if="showColor"
                  effect="dark"
                  :content="$t('navbar.color')"
                  placement="bottom">
      <el-tooltip
        v-if="showColor"
        effect="dark"
        :content="$t('navbar.color')"
        placement="bottom"
      >
        <div class="top-bar__item">
          <top-color></top-color>
        </div>
      </el-tooltip>
      <el-tooltip v-if="showDebug"
                  effect="dark"
                  :content="logsFlag?$t('navbar.bug'):logsLen+$t('navbar.bugs')"
                  placement="bottom">
      <el-tooltip
        v-if="showDebug"
        effect="dark"
        :content="logsFlag ? $t('navbar.bug') : logsLen + $t('navbar.bugs')"
        placement="bottom"
      >
        <div class="top-bar__item">
          <top-logs></top-logs>
        </div>
      </el-tooltip>
      <el-tooltip v-if="showLock"
                  effect="dark"
                  :content="$t('navbar.lock')"
                  placement="bottom">
      <el-tooltip
        v-if="showLock"
        effect="dark"
        :content="$t('navbar.lock')"
        placement="bottom"
      >
        <div class="top-bar__item">
          <top-lock></top-lock>
        </div>
      </el-tooltip>
      <el-tooltip v-if="showTheme"
                  effect="dark"
                  :content="$t('navbar.theme')"
                  placement="bottom">
      <el-tooltip
        v-if="showTheme"
        effect="dark"
        :content="$t('navbar.theme')"
        placement="bottom"
      >
        <div class="top-bar__item top-bar__item--show">
          <top-theme></top-theme>
        </div>
      </el-tooltip>
      <el-tooltip effect="dark"
      <!-- <el-tooltip effect="dark"
                  :content="$t('navbar.notice')"
                  placement="bottom">
        <div class="top-bar__item top-bar__item--show">
          <top-notice></top-notice>
        </div>
      </el-tooltip>
      <el-tooltip effect="dark"
                  :content="$t('navbar.language')"
                  placement="bottom">
      </el-tooltip> -->
      <el-tooltip
        effect="dark"
        :content="$t('navbar.language')"
        placement="bottom"
      >
        <div class="top-bar__item top-bar__item--show">
          <top-lang></top-lang>
        </div>
      </el-tooltip>
      <el-tooltip v-if="showFullScren"
                  effect="dark"
                  :content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"
                  placement="bottom">
      <el-tooltip
        v-if="showFullScren"
        effect="dark"
        :content="
          isFullScren ? $t('navbar.screenfullF') : $t('navbar.screenfull')
        "
        placement="bottom"
      >
        <div class="top-bar__item">
          <i :class="isFullScren?'icon-tuichuquanping':'icon-quanping'"
             @click="handleScreen"></i>
          <i
            :class="isFullScren ? 'icon-tuichuquanping' : 'icon-quanping'"
            @click="handleScreen"
          ></i>
        </div>
      </el-tooltip>
      <img class="top-bar__img"
           :src="userInfo.avatar">
      <img class="top-bar__img" :src="userInfo.avatar" />
      <el-dropdown>
        <span class="el-dropdown-link">
          {{userInfo.userName}}
          {{ userInfo.userName }}
          <i class="el-icon-arrow-down el-icon--right"></i>
        </span>
        <el-dropdown-menu slot="dropdown">
          <el-dropdown-item>
            <router-link to="/">{{$t('navbar.dashboard')}}</router-link>
            <router-link to="/">{{ $t("navbar.dashboard") }}</router-link>
          </el-dropdown-item>
          <el-dropdown-item>
            <router-link to="/info/index">{{$t('navbar.userinfo')}}</router-link>
            <router-link to="/info/index">{{
              $t("navbar.userinfo")
            }}</router-link>
          </el-dropdown-item>
          <el-dropdown-item @click.native="logout"
                            divided>{{$t('navbar.logOut')}}
          <el-dropdown-item @click.native="logout" divided
            >{{ $t("navbar.logOut") }}
          </el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
@@ -97,85 +113,84 @@
  </div>
</template>
<script>
  import {resetRouter} from '@/router/router'
  import {mapGetters, mapState} from "vuex";
  import {fullscreenToggel, listenfullscreen} from "@/util/util";
  import topLock from "./top-lock";
  import topMenu from "./top-menu";
  import topSearch from "./top-search";
  import topTheme from "./top-theme";
  import topLogs from "./top-logs";
  import topColor from "./top-color";
  import topNotice from './top-notice'
  import topLang from "./top-lang";
import { resetRouter } from "@/router/router";
import { mapGetters, mapState } from "vuex";
import { fullscreenToggel, listenfullscreen } from "@/util/util";
import topLock from "./top-lock";
import topMenu from "./top-menu";
import topSearch from "./top-search";
import topTheme from "./top-theme";
import topLogs from "./top-logs";
import topColor from "./top-color";
import topNotice from "./top-notice";
import topLang from "./top-lang";
  export default {
    components: {
      topLock,
      topMenu,
      topSearch,
      topTheme,
      topLogs,
      topColor,
      topNotice,
      topLang
export default {
  components: {
    topLock,
    topMenu,
    topSearch,
    topTheme,
    topLogs,
    topColor,
    topNotice,
    topLang,
  },
  name: "top",
  data() {
    return {};
  },
  filters: {},
  created() {},
  mounted() {
    listenfullscreen(this.setScreen);
  },
  computed: {
    ...mapState({
      showDebug: (state) => state.common.showDebug,
      showTheme: (state) => state.common.showTheme,
      showLock: (state) => state.common.showLock,
      showFullScren: (state) => state.common.showFullScren,
      showCollapse: (state) => state.common.showCollapse,
      showSearch: (state) => state.common.showSearch,
      showMenu: (state) => state.common.showMenu,
      showColor: (state) => state.common.showColor,
    }),
    ...mapGetters([
      "userInfo",
      "isFullScren",
      "tagWel",
      "tagList",
      "isCollapse",
      "tag",
      "logsLen",
      "logsFlag",
    ]),
  },
  methods: {
    handleScreen() {
      fullscreenToggel();
    },
    name: "top",
    data() {
      return {};
    setCollapse() {
      this.$store.commit("SET_COLLAPSE");
    },
    filters: {},
    created() {
    setScreen() {
      this.$store.commit("SET_FULLSCREN");
    },
    mounted() {
      listenfullscreen(this.setScreen);
    },
    computed: {
      ...mapState({
        showDebug: state => state.common.showDebug,
        showTheme: state => state.common.showTheme,
        showLock: state => state.common.showLock,
        showFullScren: state => state.common.showFullScren,
        showCollapse: state => state.common.showCollapse,
        showSearch: state => state.common.showSearch,
        showMenu: state => state.common.showMenu,
        showColor: state => state.common.showColor
      }),
      ...mapGetters([
        "userInfo",
        "isFullScren",
        "tagWel",
        "tagList",
        "isCollapse",
        "tag",
        "logsLen",
        "logsFlag"
      ])
    },
    methods: {
      handleScreen() {
        fullscreenToggel();
      },
      setCollapse() {
        this.$store.commit("SET_COLLAPSE");
      },
      setScreen() {
        this.$store.commit("SET_FULLSCREN");
      },
      logout() {
        this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
          confirmButtonText: this.$t("submitText"),
          cancelButtonText: this.$t("cancelText"),
          type: "warning"
        }).then(() => {
          this.$store.dispatch("LogOut").then(() => {
            resetRouter();
            this.$router.push({path: "/login"});
          });
    logout() {
      this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
        confirmButtonText: this.$t("submitText"),
        cancelButtonText: this.$t("cancelText"),
        type: "warning",
      }).then(() => {
        this.$store.dispatch("LogOut").then(() => {
          resetRouter();
          this.$router.push({ path: "/login" });
        });
      }
    }
  };
      });
    },
  },
};
</script>
<style lang="scss" scoped>
src/router/views/index.js
@@ -28,27 +28,27 @@
    {
        path: '/wel',
        component: () =>
            import ('@/views/home/index')
            // component: Layout,
            // redirect: '/wel/index',
            // children: [{
            //   path: 'index',
            //   name: '首页',
            //   meta: {
            //     i18n: 'dashboard'
            //   },
            //   component: () =>
            //     import( /* webpackChunkName: "views" */ '@/views/wel/index')
            // }, {
            //   path: 'dashboard',
            //   name: '控制台',
            //   meta: {
            //     i18n: 'dashboard',
            //     menu: false,
            //   },
            //   component: () =>
            //     import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
            // }]
            import('@/views/home/index')
        // component: Layout,
        // redirect: '/wel/index',
        // children: [{
        //   path: 'index',
        //   name: '首页',
        //   meta: {
        //     i18n: 'dashboard'
        //   },
        //   component: () =>
        //     import( /* webpackChunkName: "views" */ '@/views/wel/index')
        // }, {
        //   path: 'dashboard',
        //   name: '控制台',
        //   meta: {
        //     i18n: 'dashboard',
        //     menu: false,
        //   },
        //   component: () =>
        //     import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
        // }]
    },
@@ -64,7 +64,7 @@
                i18n: 'test'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/util/test')
                import( /* webpackChunkName: "views" */ '@/views/util/test')
        }]
    }, {
        path: '/dict-horizontal',
@@ -77,7 +77,7 @@
                i18n: 'dict'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
                import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
        }]
    }, {
        path: '/dict-vertical',
@@ -90,7 +90,7 @@
                i18n: 'dict'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
                import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
        }]
    }, {
        path: '/info',
@@ -103,7 +103,7 @@
                i18n: 'info'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
                import( /* webpackChunkName: "views" */ '@/views/system/userinfo')
        }]
    }, {
        path: '/work/process/leave',
@@ -116,7 +116,7 @@
                i18n: 'work'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
                import( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
        }, {
            path: 'handle/:taskId/:processInstanceId/:businessId',
            name: '处理请假流程',
@@ -124,7 +124,7 @@
                i18n: 'work'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
                import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
        }, {
            path: 'detail/:processInstanceId/:businessId',
            name: '请假流程详情',
@@ -132,7 +132,7 @@
                i18n: 'work'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
                import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
        }]
    }, {
        path: '/attach',
@@ -145,7 +145,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/resource/attach')
                import( /* webpackChunkName: "views" */ '@/views/resource/attach')
        }]
    },
    // {
@@ -173,7 +173,7 @@
                i18n: 'register',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/securityGuardManagement/register')
                import( /* webpackChunkName: "views" */ '@/views/securityGuardManagement/register')
        }]
    },
    {
@@ -187,7 +187,7 @@
                i18n: 'registerOnce',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/securityGuardManagement/registerOnce')
                import( /* webpackChunkName: "views" */ '@/views/securityGuardManagement/registerOnce')
        }]
    },
    {
@@ -201,7 +201,7 @@
                i18n: 'dict'
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/desk/notice')
                import( /* webpackChunkName: "views" */ '@/views/desk/notice')
        }]
    },
    {
@@ -215,7 +215,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
                import( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
        }]
    },
    // {
@@ -257,7 +257,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/management/peopleDetails')
                import( /* webpackChunkName: "views" */ '@/views/management/peopleDetails')
        }]
    }, {
        path: '/management',
@@ -270,7 +270,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/management/idinformation')
                import( /* webpackChunkName: "views" */ '@/views/management/idinformation')
        }]
    }, {
        path: '/securityCompany',
@@ -278,17 +278,17 @@
        component: Layout,
        children: [{
            path: 'index',
            name: '保安公司详细资料',
            name: '保安公司台账信息',
            meta: {
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/securityCompany/companyDetails')
                import( /* webpackChunkName: "views" */ '@/views/securityCompany/companyDetails')
        }]
    }, {
        path: '/map',
        component: () =>
            import ( /* webpackChunkName: "views" */ '@/views/mapHome/index')
            import( /* webpackChunkName: "views" */ '@/views/mapHome/index')
    }, {
        path: '/regulatoryInformation',
        redirect: '/regulatoryInformation/index',
@@ -300,7 +300,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/regulatoryInformation/index')
                import( /* webpackChunkName: "views" */ '@/views/regulatoryInformation/index')
        }]
    }, {
        path: '/commandQuery',
@@ -313,7 +313,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/commandQuery/taskDistribution')
                import( /* webpackChunkName: "views" */ '@/views/commandQuery/taskDistribution')
        }]
    },
    {
@@ -327,7 +327,7 @@
                i18n: 'registrationTrainingQuery',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/qualificationExamination/registrationTrainingQuery')
                import( /* webpackChunkName: "views" */ '@/views/qualificationExamination/registrationTrainingQuery')
        }]
    },
    { //报错  到不到vue文件
@@ -341,7 +341,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/securityUnitOperation/operationTable')
                import( /* webpackChunkName: "views" */ '@/views/securityUnitOperation/operationTable')
        }]
    },
    // {
@@ -369,7 +369,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/companyDetails')
                import( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/companyDetails')
        }]
    },
    // {
@@ -386,20 +386,20 @@
    //             import( /* webpackChunkName: "views" */ '@/views/securityUnitOperation/economicTable')
    //     }]
    // },
    {
        path: '/statisticalQueryManagement/companyDetails',
        redirect: '/statisticalQueryManagement/companyDetails/index',
        component: Layout,
        children: [{
            path: 'index',
            name: '保安公司人员详情',
            meta: {
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/companyDetails')
        }]
    },
    // {
    //     path: '/statisticalQueryManagement/companyDetails',
    //     redirect: '/statisticalQueryManagement/companyDetails/index',
    //     component: Layout,
    //     children: [{
    //         path: 'index',
    //         name: '保安公司人员详情',
    //         meta: {
    //             i18n: 'index',
    //         },
    //         component: () =>
    //             import( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/companyDetails')
    //     }]
    // },
    {
        path: '/securityUnitOperation/economicTable',
        redirect: '/securityUnitOperation/economicTable/index',
@@ -411,7 +411,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/securityUnitOperation/economicTable')
                import( /* webpackChunkName: "views" */ '@/views/securityUnitOperation/economicTable')
        }]
    },
    {
@@ -425,7 +425,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/businessStatisticsDetail')
                import( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/businessStatisticsDetail')
        }]
    },
    {
@@ -439,7 +439,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/securityGuardDetail')
                import( /* webpackChunkName: "views" */ '@/views/statisticalQueryManagement/securityGuardDetail')
        }]
    }, {
        path: '/attachOnce',
@@ -452,7 +452,7 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
                import( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
        }]
    }, {
        path: '/talk',
@@ -465,7 +465,20 @@
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/talk/talk')
                import( /* webpackChunkName: "views" */ '@/views/talk/talk')
        }]
    }, {
        path: '/resource',
        component: Layout,
        redirect: '/resource/attachCopy',
        children: [{
            path: 'attachCopy',
            name: '保安公司附件',
            meta: {
                i18n: 'dict'
            },
            component: () =>
                import( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
        }]
    }
]
src/styles/element-ui.scss
@@ -620,3 +620,8 @@
.company-box .avue-form__menu--center {
  width: 300px;
}
// .fontcolorfff .el-date-editor .el-range-input {
.el-date-editor .el-range-input {
  color: #fff !important;
}
src/views/commandQuery/taskDistribution.vue
@@ -1,78 +1,93 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-08-12 21:00:27
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 16:53:45
 * menu-name 监管信息
 */
<template>
    <basic-container>
        <avue-crud :option="option"
                   :table-loading="loading"
                   :data="data"
                   :page.sync="page"
                   :permission="permissionList"
                   v-model="form"
                   ref="crud"
                   @row-update="rowUpdates"
                   @row-save="rowSave"
                   @row-del="rowDel"
                   @search-change="searchChange"
                   @search-reset="searchReset"
                   @selection-change="selectionChange"
                   @current-change="currentChange"
                   @size-change="sizeChange"
                   @refresh-change="refreshChange"
                   @on-load="onLoad">
            <template slot-scope="{ type, size, row }"
                      slot="menu">
                <el-button icon="el-icon-location-outline"
                           :size="size"
                           :type="type"
                           @click.stop="seeLocation(row)">位置查看</el-button>
                <el-button icon="el-icon-place"
                           :size="size"
                           :type="type"
                           @click.stop="seeTrack(row)">轨迹查看
                </el-button>
            </template>
        </avue-crud>
  <basic-container class="fontcolorfff">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      v-model="form"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="el-icon-location-outline"
          :size="size"
          :type="type"
          @click.stop="seeLocation(row)"
          >位置查看</el-button
        >
        <el-button
          icon="el-icon-place"
          :size="size"
          :type="type"
          @click.stop="seeTrack(row)"
          >轨迹查看
        </el-button>
      </template>
    </avue-crud>
        <el-dialog class="see-location"
                   title="位置查看"
                   :visible.sync="seeLocationFlag"
                   :modal-append-to-body="false"
                   width="width">
            <Map ref="locationForm" />
        </el-dialog>
    <el-dialog
      class="see-location"
      title="位置查看"
      :visible.sync="seeLocationFlag"
      :modal-append-to-body="false"
      width="width"
    >
      <!-- <div>
        基本信息
        <div><span>姓名:</span><span>123</span></div>
        <div><span>电话:</span><span>123</span></div>
        <div><span>所属公司:</span><span>123</span></div>
      </div> -->
      <Map ref="locationForm" />
    </el-dialog>
        <el-dialog class="see-track"
                   title="轨迹查看"
                   :visible.sync="seeTrackFlag"
                   :modal-append-to-body="false"
                   width="width">
    <el-dialog
      class="see-track"
      title="轨迹查看"
      :visible.sync="seeTrackFlag"
      :modal-append-to-body="false"
      width="width"
    >
      <div class="search">
        选择时间:<el-date-picker
          v-model="trackTime"
          type="datetimerange"
          range-separator="至"
          start-placeholder="开始日期"
          size="mini"
          :editable="false"
          end-placeholder="结束日期"
        >
        </el-date-picker>
        <el-button type="text" @click="lookTrack"> 查看轨迹 </el-button>
      </div>
            <div class="search">
                选择时间:<el-date-picker v-model="trackTime"
                                type="datetimerange"
                                range-separator="至"
                                start-placeholder="开始日期"
                                size="mini"
                                :editable="false"
                                end-placeholder="结束日期">
                </el-date-picker>
                <el-button type="text"
                           @click="lookTrack">
                    查看轨迹
                </el-button>
            </div>
            <Map ref="tarckForm" />
        </el-dialog>
    </basic-container>
      <Map ref="tarckForm" />
    </el-dialog>
  </basic-container>
</template>
<script>
import { getListSecurity } from "@/api/system/user";
// import {
//   getList,
//   getDetail,
@@ -84,393 +99,409 @@
// import { datasing } from "./dataqualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
import { getLisperetaskDistribution } from "@/api/commandQuery/commandQuery";
import { getDirectiveLiveLocationVoList, getDirectiveLocusInfoList } from "@/api/map/people";
import {
  getDirectiveLiveLocationVoList,
  getDirectiveLocusInfoList,
} from "@/api/map/people";
import peoplePng from "@/assets/img/people.png";
export default {
    data () {
        return {
            seeLocationFlag: false,
            seeTrackFlag: false,
            trackTime: [],
            rowData: null,
            form: {},
            query: {},
            loading: true,
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
            },
  data() {
    return {
      seeLocationFlag: false,
      seeTrackFlag: false,
      trackTime: [],
      rowData: null,
      form: {},
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
            selectionList: [],
      selectionList: [],
            option: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: true,
                menu: true,
      option: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: true,
                searchShowBtn: false,
        searchShowBtn: false,
                align: "center",
                height: "auto",
                calcHeight: 30,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                index: true,
                viewBtn: true,
                dialogClickModal: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
        dialogClickModal: false,
                column: [
                    //   {
                    //     label: "类型",
                    //     prop: "type",
                    //     overHidden: true,
                    //   },
                    // {
                    //   label: "deptId",
                    //   prop: "deptId",
                    //   overHidden: true,
                    //   // labelWidth: 120,
                    //   // searchLabelWidth: 120,
                    //   searchSpan: 4,
                    //   dicUrl:
                    //     "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
                    //   props: {
                    //     label: "title",
                    //     value: "id",
                    //   },
                    //   // hide: true,
                    //   search: true,
                    //   // overHidden: true,
                    //   type: "select",
                    //   // rules: [
                    //   //   {
                    //   //     required: true,
                    //   //     message: "请输入保安公司",
                    //   //     trigger: "blur",
                    //   //   },
                    //   // ],
                    // },
                    {
                        label: "发送指令人",
                        prop: "sendName",
                        search: true,
                        searchLabelWidth: 90,
                        searchSpan: 4,
                        //     hide: true,
                        //     editDisplay: false,
                        //     addDisplay: false
                    },
        column: [
          //   {
          //     label: "类型",
          //     prop: "type",
          //     overHidden: true,
          //   },
          // {
          //   label: "deptId",
          //   prop: "deptId",
          //   overHidden: true,
          //   // labelWidth: 120,
          //   // searchLabelWidth: 120,
          //   searchSpan: 4,
          //   dicUrl:
          //     "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
          //   props: {
          //     label: "title",
          //     value: "id",
          //   },
          //   // hide: true,
          //   search: true,
          //   // overHidden: true,
          //   type: "select",
          //   // rules: [
          //   //   {
          //   //     required: true,
          //   //     message: "请输入保安公司",
          //   //     trigger: "blur",
          //   //   },
          //   // ],
          // },
          {
            label: "发送指令人",
            prop: "sendName",
            search: true,
            searchLabelWidth: 90,
            searchSpan: 4,
            //     hide: true,
            //     editDisplay: false,
            //     addDisplay: false
          },
                    {
                        label: "接收指令人",
                        prop: "receiveName",
                        // search: true,
                        // searchSpan: 4,
                        searchLabelWidth: 90,
                    },
                    {
                        label: "发送指令时间",
                        prop: "sendTime",
                        type: "date",
                        format: "yyyy-MM-dd hh:mm:ss",
                        valueFormat: "yyyy-MM-dd hh:mm:ss",
                    },
                    {
                        label: "指令内容",
                        prop: "content",
                        search: true,
                        searchSpan: 4,
                    },
                    {
                        label: "图片",
                        prop: "url",
                        dataType: "string",
                        type: "img",
                    },
                ],
            },
          {
            label: "接收指令人",
            prop: "receiveName",
            // search: true,
            // searchSpan: 4,
            searchLabelWidth: 90,
          },
          {
            label: "发送指令时间",
            prop: "sendTime",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
          },
          {
            label: "指令内容",
            prop: "content",
            search: true,
            searchSpan: 4,
          },
          {
            label: "图片",
            prop: "url",
            dataType: "string",
            type: "img",
          },
        ],
      },
            data: [
                // {
                //   deptid: "江西众泰保安公司",
                //   punishtype: 2,
                //   punishreason: "非法施工",
                //   punishresult: "没收全部非法所得财产,并罚款3W元",
                //   punishtime: "2021-01-01",
                //   punisnum: 110110110120,
                // },
            ],
        };
    },
    computed: {
        ...mapGetters(["permission"]),
        permissionList () {
            return {
                addBtn: this.vaildData(this.permission.post_add, false),
                viewBtn: this.vaildData(this.permission.post_view, false),
                delBtn: this.vaildData(this.permission.post_delete, false),
                editBtn: this.vaildData(this.permission.post_edit, false),
            };
        },
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    },
    methods: {
        rowSave (row, done, loading) {
            adddata(row).then(
                () => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                    done();
                },
                (error) => {
                    window.console.log(error);
                    loading();
                }
            );
        },
        rowUpdates (row, index, done, loading) {
            // console.log(42342);
            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: "操作成功!",
                    });
                });
        },
        // beforeOpen(done, type) {
        //   if (["edit", "view"].includes(type)) {
        //     getDetail(this.form.id).then((res) => {
        //       this.form = res.data.data;
        //     });
        //   }
        //   done();
      data: [
        // {
        //   deptid: "江西众泰保安公司",
        //   punishtype: 2,
        //   punishreason: "非法施工",
        //   punishresult: "没收全部非法所得财产,并罚款3W元",
        //   punishtime: "2021-01-01",
        //   punisnum: 110110110120,
        // },
        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();
        },
        currentChange (currentPage) {
            this.page.currentPage = currentPage;
        },
        sizeChange (pageSize) {
            this.page.pageSize = pageSize;
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            // this.loading = false;
            this.loading = true;
            getLisperetaskDistribution(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query)
            ).then((res) => {
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                // for (var k in this.data) {
                //   this.data[k]["url"] = "https://avuejs.com/images/logo-bg.jpg";
                // }
                console.log(this.data, "getLisperetaskDistribution");
                this.loading = false;
                // this.selectionClear();
            });
        },
        // onLoad(page, params = {}) {
        //   // this.loading = false;
        //   this.loading = true;
        //   //   getListJSON().then((res) => {
        //   //   axios
        //   //     .get(
        //   //       "../../api/qualificationExamination/signQualificationExamination.json"
        //   //     )
        //   //     .then((res) => {
        //   // page.currentPage,
        //   // page.pageSize,
        //   // Object.assign(params, this.query)
        //   if (datasing) {
        //     var res = datasing;
        //     console.log(res, "signQualificationExamination");
        //     const data = res.data;
        //     // this.page.total = data.total;
        //     var d = data.records;
        //     for (var k in d) {
        //       d[k].examination_mx = "正常";
        //       d[k].examination_type = "正常";
        //       d[k]["carid"] = "370111198807051124";
        //       d[k]["certificate"] = "拥有";
        //       d[k]["reviewTime"] = "2021-02-21";
        //       d[k]["results"] = "通过";
        //       d[k]["onjob"] = "是";
        //     }
        //     this.data = d;
        //     this.loading = false;
        //   }
        //   // this.selectionClear();
        //   // });
        // },
        // 行单击
        handleRowClick (row) {
            // delete (row["name"]);
            var obj = row;
            obj["name"] = "保安公司详细资料";
            this.$router.push({
                path: `/securityCompany/index`,
                query: obj,
            });
        },
        seeLocation (row) {
            this.seeLocationFlag = true
            getDirectiveLiveLocationVoList({ type: 1, userIds: row.receiveDirectiveIds }).then((result) => {
                var res = result.data.data;
                if (JSON.stringify(res) != "[]") {
                    res.forEach((data)=>{
                        this.$refs.locationForm.addEntitys(
                            {
                                LGTD: data.longitude,
                                LTTD: data.latitude,
                                name: "人员位置",
                            },
                            peoplePng,
                            0.5,
                            "peoplelayer",
                            "peopleAddlayer"
                        );
                    })
                }
            });
        },
        seeTrack (row) {
            this.trackTime = [];
            this.rowData = '';
            this.rowData = row;
            this.seeTrackFlag = true
        },
        lookTrack () {
            if (this.trackTime.length == 0) {
                this.$message({ message: "请选择开始时间", duration: 2000 });
                return;
            }
            const startTime = new Date(this.trackTime[0]);
            const start =
                startTime.getFullYear() +
                "-" +
                this.disposeTime(startTime.getMonth() + 1) +
                "-" +
                this.disposeTime(startTime.getDate()) +
                " " +
                this.disposeTime(startTime.getHours()) +
                ":" +
                this.disposeTime(startTime.getMinutes()) +
                ":" +
                this.disposeTime(startTime.getSeconds());
            if (this.trackTime.length == 1) {
                this.$message({ message: "请选择结束时间", duration: 2000 });
                return;
            }
            const endTime = new Date(this.trackTime[1]);
            const end =
                endTime.getFullYear() +
                "-" +
                this.disposeTime(endTime.getMonth() + 1) +
                "-" +
                this.disposeTime(endTime.getDate()) +
                " " +
                this.disposeTime(endTime.getHours()) +
                ":" +
                this.disposeTime(endTime.getMinutes()) +
                ":" +
                this.disposeTime(endTime.getSeconds());
            getDirectiveLocusInfoList({
                userIds: this.rowData.receiveDirectiveIds,
                type: 1,
                startTime: start,
                endTime: end,
            }).then((res) => {
                var result = res.data.data;
                if (JSON.stringify(res) != "[]") {
                    result.forEach((item) => {
                        if (item.length > 1) {
                            let arr = [];
                            item.forEach((data) => {
                                arr.push([Number(data.longitude), Number(data.latitude)]);
                            });
                            this.$refs.tarckForm.addLines(arr);
                        }
                    })
                }
            });
        },
        // 处理时间补零操作
        disposeTime (s) {
            return s < 10 ? "0" + s : s;
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  mounted() {},
  methods: {
    rowSave(row, done, loading) {
      adddata(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdates(row, index, done, loading) {
      // console.log(42342);
      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: "操作成功!",
          });
        });
    },
    // beforeOpen(done, type) {
    //   if (["edit", "view"].includes(type)) {
    //     getDetail(this.form.id).then((res) => {
    //       this.form = res.data.data;
    //     });
    //   }
    //   done();
    // },
    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();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      // this.loading = false;
      this.loading = true;
      getLisperetaskDistribution(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        // for (var k in this.data) {
        //   this.data[k]["url"] = "https://avuejs.com/images/logo-bg.jpg";
        // }
        console.log(this.data, "getLisperetaskDistribution");
        this.loading = false;
        //获取人员信息;
        // for (var k in this.data) {
        //   console.log(this.data[k].receiveDirectiveIds);
        // }
        //     var params = {
        //   id:
        // };
        // getListSecurity(1, 10, params).then((res) => {
        //   console.log(res.data.data, 5555555555);
        // });
        // this.selectionClear();
      });
    },
    // onLoad(page, params = {}) {
    //   // this.loading = false;
    //   this.loading = true;
    //   //   getListJSON().then((res) => {
    //   //   axios
    //   //     .get(
    //   //       "../../api/qualificationExamination/signQualificationExamination.json"
    //   //     )
    //   //     .then((res) => {
    //   // page.currentPage,
    //   // page.pageSize,
    //   // Object.assign(params, this.query)
    //   if (datasing) {
    //     var res = datasing;
    //     console.log(res, "signQualificationExamination");
    //     const data = res.data;
    //     // this.page.total = data.total;
    //     var d = data.records;
    //     for (var k in d) {
    //       d[k].examination_mx = "正常";
    //       d[k].examination_type = "正常";
    //       d[k]["carid"] = "370111198807051124";
    //       d[k]["certificate"] = "拥有";
    //       d[k]["reviewTime"] = "2021-02-21";
    //       d[k]["results"] = "通过";
    //       d[k]["onjob"] = "是";
    //     }
    //     this.data = d;
    //     this.loading = false;
    //   }
    //   // this.selectionClear();
    //   // });
    // },
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细资料";
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
      });
    },
    seeLocation(row) {
      this.seeLocationFlag = true;
      getDirectiveLiveLocationVoList({
        type: 1,
        userIds: row.receiveDirectiveIds,
      }).then((result) => {
        var res = result.data.data;
        if (JSON.stringify(res) != "[]") {
          res.forEach((data) => {
            this.$refs.locationForm.addEntitys(
              {
                LGTD: data.longitude,
                LTTD: data.latitude,
                name: "人员位置",
              },
              peoplePng,
              0.5,
              "peoplelayer",
              "peopleAddlayer"
            );
          });
        }
      });
    },
    seeTrack(row) {
      this.trackTime = [];
      this.rowData = "";
      this.rowData = row;
      this.seeTrackFlag = true;
    },
    lookTrack() {
      if (this.trackTime.length == 0) {
        this.$message({ message: "请选择开始时间", duration: 2000 });
        return;
      }
      const startTime = new Date(this.trackTime[0]);
      const start =
        startTime.getFullYear() +
        "-" +
        this.disposeTime(startTime.getMonth() + 1) +
        "-" +
        this.disposeTime(startTime.getDate()) +
        " " +
        this.disposeTime(startTime.getHours()) +
        ":" +
        this.disposeTime(startTime.getMinutes()) +
        ":" +
        this.disposeTime(startTime.getSeconds());
      if (this.trackTime.length == 1) {
        this.$message({ message: "请选择结束时间", duration: 2000 });
        return;
      }
      const endTime = new Date(this.trackTime[1]);
      const end =
        endTime.getFullYear() +
        "-" +
        this.disposeTime(endTime.getMonth() + 1) +
        "-" +
        this.disposeTime(endTime.getDate()) +
        " " +
        this.disposeTime(endTime.getHours()) +
        ":" +
        this.disposeTime(endTime.getMinutes()) +
        ":" +
        this.disposeTime(endTime.getSeconds());
      getDirectiveLocusInfoList({
        userIds: this.rowData.receiveDirectiveIds,
        type: 1,
        startTime: start,
        endTime: end,
      }).then((res) => {
        var result = res.data.data;
        if (JSON.stringify(res) != "[]") {
          result.forEach((item) => {
            if (item.length > 1) {
              let arr = [];
              item.forEach((data) => {
                arr.push([Number(data.longitude), Number(data.latitude)]);
              });
              this.$refs.tarckForm.addLines(arr);
            }
          });
        }
      });
    },
    // 处理时间补零操作
    disposeTime(s) {
      return s < 10 ? "0" + s : s;
    },
  },
};
</script>
src/views/licenseApproval/branchOffice.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 17:00:55 
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-06 09:20:45
 * @Last Modified time: 2021-09-15 09:28:20
 */
@@ -414,13 +414,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
@@ -569,7 +569,7 @@
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "0" },
        query: { deptid: row.cardid, type: "2" },
        // params: { row: row.identificationnumber },
      });
    },
src/views/licenseApproval/cancellationOfFiling.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 17:00:04 
 * @Last Modified by: liu
 * @Last Modified time: 2021-08-28 10:28:44
 * @Last Modified time: 2021-09-15 09:28:05
 */
@@ -315,13 +315,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
@@ -484,7 +484,7 @@
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "0" },
        query: { deptid: row.cardid, type: "6" },
        // params: { row: row.identificationnumber },
      });
    },
src/views/licenseApproval/crossRegion.vue
@@ -2,7 +2,7 @@
 * @Author:liu
 * @Date: 2021-08-26 16:59:35 
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-06 09:21:39
 * @Last Modified time: 2021-09-15 09:27:45
 */
@@ -412,13 +412,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
@@ -566,7 +566,7 @@
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "0" },
        query: { deptid: row.cardid, type: "7" },
        // params: { row: row.identificationnumber },
      });
    },
src/views/licenseApproval/securityGuard.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:57:58 
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-07 17:44:35
 * @Last Modified time: 2021-09-15 09:27:47
 */
@@ -465,13 +465,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
@@ -623,7 +623,7 @@
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "0" },
        query: { deptid: row.cardid, type: "3" },
        // params: { row: row.identificationnumber },
      });
    },
src/views/licenseApproval/securityPermit.vue
@@ -3,7 +3,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:22:20 
 * @Last Modified by: liu
 * @Last Modified time: 2021-08-28 10:29:07
 * @Last Modified time: 2021-09-15 09:27:25
 */
<template>
@@ -427,13 +427,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
src/views/licenseApproval/securityTraining.vue
@@ -2,7 +2,7 @@
 * @Author: liu
 * @Date: 2021-08-26 16:55:25 
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-06 09:27:37
 * @Last Modified time: 2021-09-15 09:27:23
 */
@@ -427,13 +427,13 @@
            ],
          },
          // {
          //   label: "所属地区",
          //   label: "所属辖区",
          //   hide: true,
          //   prop: "region",
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入所属地区",
          //       message: "请输入所属辖区",
          //       trigger: "blur",
          //     },
          //   ],
@@ -581,7 +581,7 @@
        path: "/attachOnce/index",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.cardid, type: "0" },
        query: { deptid: row.cardid, type: "1" },
        // params: { row: row.identificationnumber },
      });
    },
src/views/management/computents/honor.vue
@@ -38,7 +38,7 @@
        tip: false,
        searchShow: false,
        searchMenuSpan: 4,
        index: false,
        // index: false,
        viewBtn: true,
        //dialogType: 'drawer',
        dialogClickModal: false,
@@ -47,61 +47,55 @@
        column: [
          {
            label: "姓名",
            label: "保安员名称",
            prop: "name",
            // slot: true,
            // display: false,
            span: 24,
            labelWidth: 110,
            disabled: true,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证号",
            label: "身份证号码",
            prop: "cardid",
            // slot: true,
            // display: false,
            // formatter: function (row, value) {
            //   return (value = value + "%");
            // },
            span: 24,
            labelWidth: 110,
            width: 190,
            disabled: true,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "荣誉",
            label: "发证机关",
            prop: "paperUnit",
            span: 24,
            labelWidth: 110,
          },
          {
            label: "荣誉情况",
            prop: "honor",
            // slot: true,
            // display: false,
            // formatter: function (row, value) {
            //   return (value = value + "万元");
            // },
            span: 24,
            labelWidth: 110,
          },
          {
            label: "获取时间",
            prop: "honortime",
            // slot: true,
            // display: false,
            span: 24,
            labelWidth: 110,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 4,
            search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "click",
              },
            ],
          },
          // {
          //   label: "身份证号",
          //   prop: "cardid",
          //   slot: true,
          //   display: false,
          // },
          // {
          //   label: "联系电话",
          //   prop: "cell",
          //   slot: true,
          //   display: false,
          // },
        ],
      },
      punishSearch: {},
@@ -114,8 +108,10 @@
      },
      punishQuery: {},
      punishSelectionList: [],
      i: 1,
    };
  },
  mounted() {},
  methods: {
    punishOnLoad(page, params = {}) {
      this.punishLoading = true;
@@ -125,6 +121,7 @@
        Object.assign(params, this.punishQuery),
        this.form.cardid
      ).then((res) => {
        this.i++;
        const data = res.data.data;
        this.punishPage.total = data.total;
@@ -133,7 +130,9 @@
        this.punishLoading = false;
        this.$refs.punishCrud.refreshTable();
        this.$refs.punishCrud.doLayout();
        this.punishSelectionClear();
        if (this.i % 2 != 0) {
          this.punishAngin();
        }
      });
    },
    punishSelectionClear() {
@@ -149,6 +148,9 @@
      this.punishOnLoad(this.punishPage, params);
      done();
    },
    punishAngin() {
      this.punishOnLoad(this.punishPage, this.punishQuery);
    },
    punishSearchReset() {
      this.punishQuery = {};
      this.punishOnLoad(this.punishPage);
src/views/management/peopleDetails.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-10 16:56:14
 * @Last Modified time: 2021-09-14 14:25:03
 * menu-name 保安详细资料
 */
<template>
@@ -27,7 +27,11 @@
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                    <!-- <el-col span="12"> -->
                    <!-- </el-col> -->
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="性别">
                      <el-input
@@ -40,15 +44,64 @@
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-col span="12">
                      <el-form-item label="电子邮箱">
                        <el-input
                          disabled="true"
                          v-model="form.emails"
                          autocomplete="off"
                        ></el-input>
                      </el-form-item>
                    </el-col>
                    <el-form-item label="照片">
                      <el-image
                        :src="form.avatar"
                        :fit="'fill'"
                        style="width: 160px"
                      >
                        <div
                          slot="error"
                          class="image-slot"
                          style="color: #fff"
                        >
                          <!-- <i class="el-icon-picture-outline"></i> -->
                          暂无照片
                        </div>
                      </el-image>
                      <!-- <el-input
                        disabled="true"
                        v-model="form.realName"
                        autocomplete="off"
                      ></el-input> -->
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="指纹信息">
                      <!-- style="width: 100px; height: 100px" -->
                      <!-- <el-image :src="form.fingerprint" :fit="'fill'" -->
                      <!-- src="/img/a.jpg" -->
                      <el-image
                        :src="form.fingerprint"
                        :fit="'fill'"
                        style="width: 160px"
                        ><div
                          slot="error"
                          class="image-slot"
                          style="color: #fff"
                        >
                          <!-- <i class="el-icon-picture-outline"></i> -->
                          暂无指纹
                        </div></el-image
                      >
                      <!-- <el-input
                        disabled="true"
                        v-model="form.realName"
                        autocomplete="off"
                      ></el-input> -->
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col span="12">
                    <el-form-item label="电子邮箱">
                      <el-input
                        disabled="true"
                        v-model="form.emails"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                  <el-col span="12">
                    <el-form-item label="联系方式">
@@ -240,6 +293,7 @@
    }
    this.form = this.$route.query;
    console.log(this.form.avatar);
  },
  mounted() {
    // this.$store.state.tags.tag.label = '保安详细资料'
src/views/permit/permit.vue
@@ -406,13 +406,13 @@
            ],
          },
          {
            label: "所属地区",
            label: "所属辖区",
            hide: true,
            prop: "region",
            rules: [
              {
                required: true,
                message: "请输入所属地区",
                message: "请输入所属辖区",
                trigger: "blur",
              },
            ],
src/views/qualificationExamination/registrationTrainingQuery.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:14
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-14 17:22:35
 * menu-name 报名培训查询
 */
<template>
@@ -363,6 +363,38 @@
            // }],
          },
          {
            label: "报考等级",
            prop: "trainLevel",
            overHidden: true,
            // type: "date",
            // format: "yyyy-MM-dd",
            // valueFormat: "yyyy-MM-dd",
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入培训时间",
            //     trigger: "blur",
            //   },
            // ],
            // width: 100,
            // addDisplay: true,
            // editDisplay: true,
            // viewDisplay: true,
            // searchSpan: 4,
            // dicUrl: "/api/blade-system/dict-biz/dictionary?code=unitsScaleType",
            // props: {
            //     label: "dictValue",
            //     value: "dictKey"
            // },
            // // search: true,
            // type: "select",
            // rules: [{
            //     required: true,
            //     message: "请选择单位规模",
            //     trigger: "blur"
            // }],
          },
          {
            label: "培训时间",
            prop: "trainingTime",
            type: "date",
src/views/record/record.vue
@@ -320,12 +320,12 @@
            ],
          },
          {
            label: "所属地区",
            label: "所属辖区",
            prop: "region",
            rules: [
              {
                required: true,
                message: "请输入所属地区",
                message: "请输入所属辖区",
                trigger: "blur",
              },
            ],
src/views/recordk/recordk.vue
@@ -255,12 +255,12 @@
            ],
          },
          {
            label: "所属地区",
            label: "所属辖区",
            prop: "region",
            rules: [
              {
                required: true,
                message: "请输入所属地区",
                message: "请输入所属辖区",
                trigger: "blur",
              },
            ],
src/views/resource/attach.vue
@@ -1,78 +1,82 @@
<template>
    <basic-container>
        <avue-crud :option="option"
                   :table-loading="loading"
                   :data="data"
                   :page.sync="page"
                   :permission="permissionList"
                   :before-open="beforeOpen"
                   v-model="form"
                   ref="crud"
                   @row-del="rowDel"
                   @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="primary"-->
                <!--                   size="small"-->
                <!--                   plain-->
                <!--                   icon="el-icon-upload2"-->
                <!--                   @click="handleUpload">上 传-->
                <!--        </el-button>-->
                <!--        <el-button type="danger"-->
                <!--                   size="small"-->
                <!--                   icon="el-icon-delete"-->
                <!--                   plain-->
                <!--                   @click="handleDelete">删 除-->
                <!--        </el-button>-->
            </template>
            <template slot-scope="scope"
                      slot="menu">
                <el-button type="text"
                           icon="el-icon-download"
                           size="small"
                           @click="handleDownload(scope.row)">下载
                </el-button>
                <el-button type="text"
                           icon="el-icon-picture-outline-round"
                           size="small"
                           v-show="!fileFormat(scope.row)"
                           @click="seeImages(scope.row)">预览
                </el-button>
            </template>
            <template slot-scope="{ row }"
                      slot="attachSize">
                <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
            </template>
        </avue-crud>
        <el-dialog title="附件管理"
                   append-to-body
                   :visible.sync="attachBox"
                   width="555px">
            <avue-form ref="form"
                       :option="attachOption"
                       v-model="attachForm"
                       :upload-after="uploadAfter">
            </avue-form>
        </el-dialog>
  <basic-container>
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-del="rowDel"
      @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="primary"-->
        <!--                   size="small"-->
        <!--                   plain-->
        <!--                   icon="el-icon-upload2"-->
        <!--                   @click="handleUpload">上 传-->
        <!--        </el-button>-->
        <!--        <el-button type="danger"-->
        <!--                   size="small"-->
        <!--                   icon="el-icon-delete"-->
        <!--                   plain-->
        <!--                   @click="handleDelete">删 除-->
        <!--        </el-button>-->
      </template>
      <template slot-scope="scope" slot="menu">
        <el-button
          type="text"
          icon="el-icon-download"
          size="small"
          @click="handleDownload(scope.row)"
          >下载
        </el-button>
        <el-button
          type="text"
          icon="el-icon-picture-outline-round"
          size="small"
          v-show="!fileFormat(scope.row)"
          @click="seeImages(scope.row)"
          >预览
        </el-button>
      </template>
      <template slot-scope="{ row }" slot="attachSize">
        <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
      </template>
    </avue-crud>
    <el-dialog
      title="附件管理"
      append-to-body
      :visible.sync="attachBox"
      width="555px"
    >
      <avue-form
        ref="form"
        :option="attachOption"
        v-model="attachForm"
        :upload-after="uploadAfter"
      >
      </avue-form>
    </el-dialog>
        <el-dialog title="预览"
                   append-to-body
                   :visible.sync="imgSee"
                   class="see-img-box">
            <div class="img"
                 :style="{background: imgUrl}">
            </div>
        </el-dialog>
    </basic-container>
    <el-dialog
      title="预览"
      append-to-body
      :visible.sync="imgSee"
      class="see-img-box"
    >
      <div class="img" :style="{ background: imgUrl }"></div>
    </el-dialog>
  </basic-container>
</template>
<script>
@@ -81,323 +85,333 @@
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
    components: { ElImageViewer },
    data () {
        return {
            form: {},
            query: {},
            loading: true,
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
  components: { ElImageViewer },
  data() {
    return {
      form: {},
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      attachBox: false,
      selectionList: [],
      option: {
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        searchShowBtn: false,
        headerAlign: "center",
        border: true,
        index: true,
        viewBtn: true,
        selection: true,
        dialogClickModal: false,
        column: [
          {
            label: "附件地址",
            prop: "link",
            rules: [
              {
                required: true,
                message: "请输入附件地址",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件域名",
            prop: "domain",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件域名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件名称",
            prop: "name",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件原名",
            prop: "originalName",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件原名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件拓展名",
            prop: "extension",
            rules: [
              {
                required: true,
                message: "请输入附件拓展名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件大小",
            prop: "attachSize",
            slot: true,
            rules: [
              {
                required: true,
                message: "请输入附件大小",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属机构",
            prop: "deptid",
            type: "select",
            dicUrl: "/api/blade-system/dept/selectIn",
            props: {
              label: "deptname",
              value: "deptid",
            },
            attachBox: false,
            selectionList: [],
            option: {
                height: "auto",
                calcHeight: 30,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                searchShowBtn: false,
                headerAlign: "center",
                border: true,
                index: true,
                viewBtn: true,
                selection: true,
                dialogClickModal: false,
                column: [
                    {
                        label: "附件地址",
                        prop: "link",
                        rules: [
                            {
                                required: true,
                                message: "请输入附件地址",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "附件域名",
                        prop: "domain",
                        search: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入附件域名",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "附件名称",
                        prop: "name",
                        search: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入附件名称",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "附件原名",
                        prop: "originalName",
                        search: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入附件原名",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "附件拓展名",
                        prop: "extension",
                        rules: [
                            {
                                required: true,
                                message: "请输入附件拓展名",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "附件大小",
                        prop: "attachSize",
                        slot: true,
                        rules: [
                            {
                                required: true,
                                message: "请输入附件大小",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        label: "所属机构",
                        prop: "deptid",
                        type: "select",
                        dicUrl: "/api/blade-system/dept/selectIn",
                        props: {
                            label: "deptname",
                            value: "deptid",
                        },
                    },
                    {
                        label: "类型",
                        prop: "type",
                        addDisplay: false,
                        width: 80,
                        type: "select",
                        dicData: [
                            {
                                label: "许可审批",
                                value: "0",
                            },
                            {
                                label: "备案",
                                value: "1",
                            },
                            {
                                label: "撤销",
                                value: "2",
                            },
                            {
                                label: "跨区备案",
                                value: "3",
                            },
                        ],
                    },
                ],
          },
          {
            label: "类型",
            prop: "type",
            addDisplay: false,
            width: 80,
            type: "select",
            dicData: [
              {
                label: "许可审批",
                value: "0",
              },
              {
                label: "备案",
                value: "1",
              },
              {
                label: "撤销",
                value: "2",
              },
              {
                label: "跨区备案",
                value: "3",
              },
            ],
          },
        ],
      },
      data: [],
      attachForm: {},
      attachOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "附件上传",
            prop: "attachFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            data: [],
            attachForm: {},
            attachOption: {
                submitBtn: false,
                emptyBtn: false,
                column: [
                    {
                        label: "附件上传",
                        prop: "attachFile",
                        type: "upload",
                        drag: true,
                        loadText: "模板上传中,请稍等",
                        span: 24,
                        propsHttp: {
                            res: "data",
                        },
                        action: "/api/blade-resource/oss/endpoint/put-file-attach?deptid=",
                    },
                ],
            },
            action: "/api/blade-resource/oss/endpoint/put-file-attach?deptid=",
          },
        ],
      },
            imgSee: false,
            imgUrl: ""
        };
      imgSee: false,
      imgUrl: "",
    };
  },
  created() {
    var flag = false,
      i = 0,
      ind = null;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "附件上传") {
        if (flag == false) {
          ind = index;
          flag = true;
        }
        i++;
      }
    });
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
    var deptid = this.$route.query.deptid;
    var type = this.$route.query.type;
    this.attachOption.column[0].action += deptid + "&type=" + type;
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: false,
        editBtn: false,
        viewBtn: false,
        delBtn: this.vaildData(this.permission.attach_delete, false),
      };
    },
    created () {
        var flag = false,
            i = 0,
            ind = null;
        this.$store.state.tags.tagList.forEach((item, index) => {
            if (item.label == "附件上传") {
                if (flag == false) {
                    ind = index;
                    flag = true;
                }
                i++;
            }
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  methods: {
    handleUpload() {
      this.attachBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.attachBox = false;
      this.refreshChange();
      done();
    },
    handleDownload(row) {
      window.open(`${row.link}`);
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
        if (i > 1) {
            this.$store.state.tags.tagList.splice(ind, 1);
        }
        var deptid = this.$route.query.deptid;
        var type = this.$route.query.type;
        this.attachOption.column[0].action += deptid + "&type=" + type;
    },
    computed: {
        ...mapGetters(["permission"]),
        permissionList () {
            return {
                addBtn: false,
                editBtn: false,
                viewBtn: false,
                delBtn: this.vaildData(this.permission.attach_delete, false),
            };
        },
        ids () {
            let ids = [];
            this.selectionList.forEach((ele) => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    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();
        });
    },
    methods: {
        handleUpload () {
            this.attachBox = true;
        },
        uploadAfter (res, done, loading, column) {
            window.console.log(column);
            this.attachBox = false;
            this.refreshChange();
            done();
        },
        handleDownload (row) {
            window.open(`${row.link}`);
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.onLoad(this.page);
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    });
                });
        },
        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();
        },
        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();
        },
        currentChange (currentPage) {
            this.page.currentPage = currentPage;
        },
        sizeChange (pageSize) {
            this.page.pageSize = pageSize;
        },
        refreshChange () {
            this.onLoad(this.page, this.query);
        },
        onLoad (page, params = {}) {
            this.loading = true;
            getList(
                page.currentPage,
                page.pageSize,
                Object.assign(params, this.query),
                this.$route.query.deptid,
                this.$route.query.type
            ).then((res) => {
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
                this.loading = false;
                this.selectionClear();
            });
        },
        seeImages (row) {
            this.imgUrl = "";
            this.imgUrl = "url(" + row.link + ") center center / contain no-repeat";
            this.imgSee = true;
        },
        fileFormat (row) {
            var index = row.link.lastIndexOf(".");
            var ext = row.link.substr(index + 1);
            return [
                'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].
                indexOf(ext.toLowerCase()) == -1;
        }
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
        });
      }
      done();
    },
    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();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      console.log(this.$route.query, "this.$route.query");
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query),
        this.$route.query.deptid,
        this.$route.query.type
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
    },
    seeImages(row) {
      this.imgUrl = "";
      this.imgUrl = "url(" + row.link + ") center center / contain no-repeat";
      this.imgSee = true;
    },
    fileFormat(row) {
      var index = row.link.lastIndexOf(".");
      var ext = row.link.substr(index + 1);
      return (
        [
          "png",
          "jpg",
          "jpeg",
          "bmp",
          "gif",
          "webp",
          "psd",
          "svg",
          "tiff",
        ].indexOf(ext.toLowerCase()) == -1
      );
    },
  },
};
</script>
src/views/resource/attachCopy.vue
New file
@@ -0,0 +1,421 @@
<template>
  <basic-container class="hasButTwo">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-del="rowDel"
      @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="primary"
          size="small"
          plain
          v-if="permission.attach_upload"
          icon="el-icon-upload2"
          @click="handleUpload"
          >上 传
        </el-button>
        <el-button
          type="danger"
          size="small"
          icon="el-icon-delete"
          plain
          v-if="permission.attach_delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template> -->
      <template slot-scope="scope" slot="menu">
        <el-button
          type="text"
          icon="el-icon-download"
          size="small"
          v-if="permission.attach_download"
          @click="handleDownload(scope.row)"
          >下载
        </el-button>
        <el-button
          type="text"
          icon="el-icon-picture-outline-round"
          size="small"
          v-show="!fileFormat(scope.row)"
          @click="seeImages(scope.row)"
          >预览
        </el-button>
      </template>
      <template slot-scope="{ row }" slot="attachSize">
        <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
      </template>
    </avue-crud>
    <el-dialog
      title="附件管理"
      append-to-body
      :visible.sync="attachBox"
      width="555px"
    >
      <avue-form
        ref="form"
        :option="attachOption"
        v-model="attachForm"
        :upload-after="uploadAfter"
      >
      </avue-form>
    </el-dialog>
    <el-dialog
      title="预览"
      append-to-body
      :visible.sync="imgSee"
      class="see-img-box"
    >
      <div class="img" :style="{ background: imgUrl }"></div>
    </el-dialog>
  </basic-container>
</template>
<script>
import { getList, getDetail, remove } from "@/api/resource/attach";
import { mapGetters } from "vuex";
export default {
  data() {
    var type = 4;
    var deptid = this.$route.query.deptId;
    return {
      form: {},
      query: {},
      putParam: "",
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      attachBox: false,
      selectionList: [],
      option: {
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: true, //liu
        index: true,
        stripe: true,
        // menu:false,
        viewBtn: true,
        selection: true,
        dialogClickModal: false,
        column: [
          {
            label: "附件地址",
            prop: "link",
            rules: [
              {
                required: true,
                message: "请输入附件地址",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件域名",
            prop: "domain",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件域名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件名称",
            prop: "name",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件原名",
            prop: "originalName",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件原名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件拓展名",
            prop: "extension",
            rules: [
              {
                required: true,
                message: "请输入附件拓展名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属公司",
            prop: "enterprisename",
            rules: [
              {
                required: true,
                message: "请输入所属公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件预览",
            prop: "link",
            type: "img",
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入附件拓展名",
            //     trigger: "blur",
            //   },
            // ],
          },
          {
            label: "附件大小",
            prop: "attachSize",
            slot: true,
            rules: [
              {
                required: true,
                message: "请输入附件大小",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      data: [],
      attachForm: {},
      attachOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "附件上传",
            prop: "attachFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            action:
              "/api/blade-resource/oss/endpoint/put-file-attach?type=" +
              type +
              "&deptid=" +
              deptid,
          },
        ],
      },
      imgSee: false,
      imgUrl: "",
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: false,
        editBtn: false,
        viewBtn: false,
        delBtn: this.vaildData(this.permission.attach_delete, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  mounted() {
    var flag = false,
      i = 0,
      ind = null;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "保安公司附件") {
        if (flag == false) {
          ind = index;
          flag = true;
        }
        i++;
      }
    });
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
  },
  methods: {
    handleUpload() {
      this.attachBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.attachBox = false;
      this.refreshChange();
      done();
    },
    handleDownload(row) {
      window.open(`${row.link}`);
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    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();
    },
    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();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      // params.type = 4;
      // params.deptid = this.$route.query.deptid;
      // console.log(params.deptid);
      this.loading = true;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query),
        this.$route.query.deptid,
        4
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        for (var k in this.data) {
          this.data[k]["enterprisename"] = this.$route.query.enterprisename;
        }
        console.log(this.data);
        this.loading = false;
        this.selectionClear();
      });
    },
    seeImages(row) {
      this.imgUrl = "";
      this.imgUrl = "url(" + row.link + ") center center / contain no-repeat";
      this.imgSee = true;
    },
    fileFormat(row) {
      var index = row.link.lastIndexOf(".");
      var ext = row.link.substr(index + 1);
      return (
        [
          "png",
          "jpg",
          "jpeg",
          "bmp",
          "gif",
          "webp",
          "psd",
          "svg",
          "tiff",
        ].indexOf(ext.toLowerCase()) == -1
      );
    },
  },
};
</script>
<style>
</style>
src/views/resource/attachOnce copy.vue
New file
@@ -0,0 +1,421 @@
<template>
  <basic-container>
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-del="rowDel"
      @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="primary"-->
        <!--                   size="small"-->
        <!--                   plain-->
        <!--                   icon="el-icon-upload2"-->
        <!--                   @click="handleUpload">上 传-->
        <!--        </el-button>-->
        <!--        <el-button type="danger"-->
        <!--                   size="small"-->
        <!--                   icon="el-icon-delete"-->
        <!--                   plain-->
        <!--                   @click="handleDelete">删 除-->
        <!--        </el-button>-->
      </template>
      <template slot-scope="scope" slot="menu">
        <el-button
          type="text"
          icon="el-icon-download"
          size="small"
          @click="handleDownload(scope.row)"
          >下载
        </el-button>
        <el-button
          type="text"
          icon="el-icon-picture-outline-round"
          size="small"
          v-show="!fileFormat(scope.row)"
          @click="seeImages(scope.row)"
          >预览
        </el-button>
      </template>
      <template slot-scope="{ row }" slot="attachSize">
        <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
      </template>
    </avue-crud>
    <el-dialog
      title="附件管理"
      append-to-body
      :visible.sync="attachBox"
      width="555px"
    >
      <avue-form
        ref="form"
        :option="attachOption"
        v-model="attachForm"
        :upload-after="uploadAfter"
      >
      </avue-form>
    </el-dialog>
    <el-dialog
      title="预览"
      append-to-body
      :visible.sync="imgSee"
      class="see-img-box"
    >
      <div class="img" :style="{ background: imgUrl }"></div>
    </el-dialog>
  </basic-container>
</template>
<script>
import { getList, getDetail, remove } from "@/api/resource/attachOnce";
import { mapGetters } from "vuex";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
  components: { ElImageViewer },
  data() {
    return {
      form: {},
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      attachBox: false,
      selectionList: [],
      option: {
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        searchShowBtn: false,
        headerAlign: "center",
        border: true,
        index: true,
        viewBtn: true,
        selection: true,
        dialogClickModal: false,
        column: [
          {
            label: "附件地址",
            prop: "link",
            rules: [
              {
                required: true,
                message: "请输入附件地址",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件域名",
            prop: "domain",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件域名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件名称",
            prop: "name",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件原名",
            prop: "originalName",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件原名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件拓展名",
            prop: "extension",
            rules: [
              {
                required: true,
                message: "请输入附件拓展名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件大小",
            prop: "attachSize",
            slot: true,
            rules: [
              {
                required: true,
                message: "请输入附件大小",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属机构",
            prop: "deptid",
            type: "select",
            dicUrl: "/api/blade-system/dept/selectIn",
            props: {
              label: "deptname",
              value: "deptid",
            },
          },
          {
            label: "类型",
            prop: "type",
            addDisplay: false,
            width: 80,
            type: "select",
            dicData: [
              {
                label: "许可审批",
                value: "0",
              },
              {
                label: "备案",
                value: "1",
              },
              {
                label: "撤销",
                value: "2",
              },
              {
                label: "跨区备案",
                value: "3",
              },
            ],
          },
        ],
      },
      data: [],
      attachForm: {},
      attachOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "附件上传",
            prop: "attachFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            action: "/api/blade-resource/oss/endpoint/put-file-attach?deptid=",
          },
        ],
      },
      imgSee: false,
      imgUrl: "",
    };
  },
  created() {
    var flag = false,
      i = 0,
      ind = null;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "附件上传") {
        if (flag == false) {
          ind = index;
          flag = true;
        }
        i++;
      }
    });
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
    var deptid = this.$route.query.deptid;
    var type = this.$route.query.type;
    this.attachOption.column[0].action += deptid + "&type=" + type;
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: false,
        editBtn: false,
        viewBtn: false,
        delBtn: this.vaildData(this.permission.attach_delete, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  methods: {
    handleUpload() {
      this.attachBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.attachBox = false;
      this.refreshChange();
      done();
    },
    handleDownload(row) {
      window.open(`${row.link}`);
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    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();
    },
    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();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query),
        this.$route.query.deptid,
        this.$route.query.type
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
    },
    seeImages(row) {
      this.imgUrl = "";
      this.imgUrl = "url(" + row.link + ") center center / contain no-repeat";
      this.imgSee = true;
    },
    fileFormat(row) {
      var index = row.link.lastIndexOf(".");
      var ext = row.link.substr(index + 1);
      return (
        [
          "png",
          "jpg",
          "jpeg",
          "bmp",
          "gif",
          "webp",
          "psd",
          "svg",
          "tiff",
        ].indexOf(ext.toLowerCase()) == -1
      );
    },
  },
};
</script>
<style scoped>
.img {
  height: 100%;
}
</style>
src/views/resource/attachOnce.vue
@@ -1,5 +1,6 @@
<template>
  <basic-container>
  <div>
    <slot name="buts"></slot>
    <avue-crud
      :option="option"
      :table-loading="loading"
@@ -49,9 +50,9 @@
          >预览
        </el-button>
      </template>
      <template slot-scope="{ row }" slot="attachSize">
      <!-- <template slot-scope="{ row }" slot="attachSize">
        <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
      </template>
      </template> -->
    </avue-crud>
    <el-dialog
      title="附件管理"
@@ -76,11 +77,17 @@
    >
      <div class="img" :style="{ background: imgUrl }"></div>
    </el-dialog>
  </basic-container>
  </div>
</template>
<script>
import { getList, getDetail, remove } from "@/api/resource/attachOnce";
import {
  getUseInfor,
  getTemplate,
  getList,
  getDetail,
  remove,
} from "@/api/resource/attachOnce";
import { mapGetters } from "vuex";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
@@ -99,7 +106,7 @@
      attachBox: false,
      selectionList: [],
      option: {
        height: "auto",
        height: 500,
        calcHeight: 30,
        tip: false,
        searchShow: true,
@@ -108,10 +115,23 @@
        headerAlign: "center",
        border: true,
        index: true,
        align: "center",
        delBtn: false,
        viewBtn: true,
        selection: true,
        dialogClickModal: false,
        column: [
          {
            label: "附件名称",
            prop: "id",
            rules: [
              {
                required: true,
                message: "请输入附件地址",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件地址",
            prop: "link",
@@ -123,122 +143,135 @@
              },
            ],
          },
          {
            label: "附件域名",
            prop: "domain",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件域名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件名称",
            prop: "name",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件原名",
            prop: "originalName",
            search: true,
            rules: [
              {
                required: true,
                message: "请输入附件原名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件拓展名",
            prop: "extension",
            rules: [
              {
                required: true,
                message: "请输入附件拓展名",
                trigger: "blur",
              },
            ],
          },
          {
            label: "附件大小",
            prop: "attachSize",
            slot: true,
            rules: [
              {
                required: true,
                message: "请输入附件大小",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属机构",
            prop: "deptid",
            type: "select",
            dicUrl: "/api/blade-system/dept/selectIn",
            props: {
              label: "deptname",
              value: "deptid",
            },
          },
          {
            label: "类型",
            prop: "type",
            addDisplay: false,
            width: 80,
            type: "select",
            dicData: [
              {
                label: "许可审批",
                value: "0",
              },
              {
                label: "备案",
                value: "1",
              },
              {
                label: "撤销",
                value: "2",
              },
              {
                label: "跨区备案",
                value: "3",
              },
            ],
          },
        ],
        // [
        //   {
        //     label: "附件地址",
        //     prop: "link",
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件地址",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "附件域名",
        //     prop: "domain",
        //     search: true,
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件域名",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "附件名称",
        //     prop: "name",
        //     search: true,
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件名称",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "附件原名",
        //     prop: "originalName",
        //     search: true,
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件原名",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "附件拓展名",
        //     prop: "extension",
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件拓展名",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "附件大小",
        //     prop: "attachSize",
        //     slot: true,
        //     rules: [
        //       {
        //         required: true,
        //         message: "请输入附件大小",
        //         trigger: "blur",
        //       },
        //     ],
        //   },
        //   {
        //     label: "所属机构",
        //     prop: "deptid",
        //     type: "select",
        //     dicUrl: "/api/blade-system/dept/selectIn",
        //     props: {
        //       label: "deptname",
        //       value: "deptid",
        //     },
        //   },
        //   {
        //     label: "类型",
        //     prop: "type",
        //     addDisplay: false,
        //     width: 80,
        //     type: "select",
        //     dicData: [
        //       {
        //         label: "许可审批",
        //         value: "0",
        //       },
        //       {
        //         label: "备案",
        //         value: "1",
        //       },
        //       {
        //         label: "撤销",
        //         value: "2",
        //       },
        //       {
        //         label: "跨区备案",
        //         value: "3",
        //       },
        //     ],
        //   },
        // ],
      },
      data: [],
      attachForm: {},
      attachOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "附件上传",
            prop: "attachFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            action: "/api/blade-resource/oss/endpoint/put-file-attach?deptid=",
          },
        ],
      },
      // attachForm: {},
      // attachOption: {
      //   submitBtn: false,
      //   emptyBtn: false,
      //   column: [
      //     {
      //       label: "附件上传",
      //       prop: "attachFile",
      //       type: "upload",
      //       drag: true,
      //       loadText: "模板上传中,请稍等",
      //       span: 24,
      //       propsHttp: {
      //         res: "data",
      //       },
      //       action: "/api/blade-resource/oss/endpoint/put-file-attach?deptid=",
      //     },
      //   ],
      // },
      imgSee: false,
      imgUrl: "",
@@ -260,9 +293,9 @@
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
    var deptid = this.$route.query.deptid;
    var type = this.$route.query.type;
    this.attachOption.column[0].action += deptid + "&type=" + type;
    // var deptid = this.$route.query.deptid;
    // var type = this.$route.query.type;
    // this.attachOption.column[0].action += deptid + "&type=" + type;
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -370,19 +403,56 @@
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query),
        this.$route.query.deptid,
        this.$route.query.type
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      this.data = [];
      params["ptype"] = this.$route.query.type;
      getTemplate(params, 1, 50).then((res) => {
        //获取模板
        const mobel = res.data.data.records;
        console.log(mobel);
        params["userid"] = this.$route.query.deptid;
        getUseInfor(params).then((res) => {
          //处理对应数据
          const data = res.data.data.records[0];
          console.log(data);
          if (data == [] || data == undefined) {
            this.data = [];
            this.loading = false;
            return;
          }
          var links = data.links.split(",");
          var id = data.templateid.split(",");
          for (let k in links) {
            this.data.push({
              link: links[k],
              id: +id[k] + 1,
            });
          }
          console.log(this.data);
          for (let n in this.data) {
            //处理模板
            for (let m in mobel) {
              if (this.data[n].id == mobel[m].id) {
                this.data[n].id = mobel[m].originalname;
              }
            }
          }
          this.loading = false;
        });
      });
      // getList(
      //   page.currentPage,
      //   page.pageSize,
      //   Object.assign(params, this.query),
      //   this.$route.query.deptid,
      //   this.$route.query.type
      // ).then((res) => {
      //   const data = res.data.data;
      //   this.page.total = data.total;
      //   this.data = data.records;
      //   this.loading = false;
      //   this.selectionClear();
      // });
    },
    seeImages(row) {
src/views/revoke/revoke.vue
@@ -253,13 +253,13 @@
            ],
          },
          {
            label: "所属地区",
            label: "所属辖区",
            prop: "region",
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入所属地区",
                message: "请输入所属辖区",
                trigger: "blur",
              },
            ],
src/views/securityCompany/armed.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: liu
 * @Last Modified time: 2021-08-30 15:14:22
 * @Last Modified time: 2021-09-15 11:32:57
 * menu-name 保安服务公司查询
 */
<template>
@@ -42,7 +42,14 @@
          :size="size"
          :type="type"
          @click.stop="handleRowClick(row)"
          >查看
          >台账查询
        </el-button>
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          @click.stop="handleRowlood(row)"
          >附件预览
        </el-button>
        <el-button
          :size="size"
@@ -99,71 +106,14 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
import { companyColimn, punishColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
        column: punishColimn,
      },
      dialogVisible: false,
@@ -190,7 +140,7 @@
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 160,
        menuWidth: 280,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
@@ -411,13 +361,17 @@
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      obj["name"] = "保安公司台账信息";
      console.log(obj, "obj");
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
      });
    },
    handleRowlood(row) {
      //附件预览1
      console.log(row);
    },
  },
};
</script>
src/views/securityCompany/column.js
@@ -137,9 +137,16 @@
    },
    {
        label: "所属辖区",
        prop: "region",
        // prop: "region",
        labelWidth: 160,
        // width: 110,
        prop: "jurisdiction",
        type: "tree",
        dicUrl: "/api/jurisdiction/lazy-tree",
        props: {
            label: "title",
            value: "id",
        },
        // search: true,
        overHidden: true
    },
@@ -161,4 +168,72 @@
        // search: true,
        // width: 88,
    },
]
]
export var punishColimn = [
    {
        label: "公司名称",
        prop: "enterprisename",
        span: 24,
        labelWidth: 110,
        disabled: true,
        rules: [
            {
                required: true,
                message: "请输入公司名称",
                trigger: "blur",
            },
        ],
    },
    {
        label: "处罚情况",
        prop: "punishreason",
        span: 24,
        labelWidth: 110,
        rules: [
            {
                required: true,
                message: "请输入处罚情况",
                trigger: "blur",
            },
        ],
    },
    {
        label: "处罚结果",
        prop: "punishresult",
        span: 24,
        // type: "textarea",
        labelWidth: 110,
    },
    {
        label: "处罚日期",
        prop: "punishtime",
        span: 24,
        type: "date",
        format: "yyyy-MM-dd",
        valueFormat: "yyyy-MM-dd",
        // type: "textarea",
        labelWidth: 110,
    },
    {
        label: "处罚单位",
        prop: "penalty",
        span: 24,
        // type: "textarea",
        labelWidth: 110,
    },
    {
        label: "处罚批准文号",
        prop: "punisnum",
        span: 24,
        // type: "textarea",
        labelWidth: 110,
    }
    //   {
    //     label: "授予单位名称",
    //     prop: "sex2",
    //     span: 24,
    //     labelWidth: 110,
    //   },
]
src/views/securityCompany/companyDetails.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-06 10:21:32
 * @Last Modified time: 2021-09-15 11:06:36
 * menu-name 保安公司详细资料
 */
<template>
@@ -106,10 +106,10 @@
                <el-row>
                  <el-col span="12">
                    <el-form-item label="所属地区">
                    <el-form-item label="所属辖区">
                      <el-input
                        disabled="true"
                        v-model="form.region"
                        v-model="form.$jurisdiction"
                        autocomplete="off"
                      ></el-input>
                    </el-form-item>
@@ -343,6 +343,7 @@
  examinationList,
  getInvestorList,
  getManageList,
  usejurisdiction,
} from "@/api/securityCompany/companyDetails";
import equipment from "./computents/equipment.vue"; //装备管理
import staff from "./computents/staff.vue"; //保安员信息
@@ -517,9 +518,9 @@
      i = 0,
      ind = null,
      that = this;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "保安公司详细资料") {
      console.log(item.label);
      if (item.label == "保安公司台账信息") {
        if (flag == false) {
          ind = index;
          flag = true;
@@ -550,11 +551,35 @@
      this.form = this.$route.query;
      console.log(this.form, "obj1");
    }
  },
  mounted() {
    // this.$store.state.tags.tag.label = '保安详细资料'
    usejurisdiction().then((res) => {
      const data = res.data.data;
      console.log(this.form, "form");
      let d = this.inspects(data, this.form.jurisdiction);
      this.form.jurisdiction = d;
    });
  },
  methods: {
    inspects(d, val) {
      var a = "";
      var doit = (d, val) => {
        for (let k in d) {
          if (d[k].key == val) {
            a = d[k].title;
            break;
          } else {
            if (d[k].hasChildren) {
              doit(d[k].children, val);
            } else {
            }
          }
        }
      };
      doit(d, val);
      // if (a == "") {
      //   a = val;
      // }
      return a;
    },
    handleClick(tab) {
      if (tab.index == 1) {
        this.investorSearchReset();
src/views/securityCompany/computents/punish.vue
@@ -12,6 +12,7 @@
    @search-reset="punishSearchReset"
    @current-change="punishCurrentChange"
    @size-change="punishSizeChange"
    @refresh-change="punishRefreshcCange"
  >
  </avue-crud>
  <!-- @on-load="punishOnLoad" -->
@@ -19,6 +20,8 @@
<script>
import { getListPunish } from "@/api/securityCompany/security";
import { punishColimn } from "../column";
export default {
  props: ["form"],
  data() {
@@ -46,48 +49,7 @@
        // 操作栏宽度
        menuWidth: 156,
        column: [
          {
            label: "处罚原因",
            prop: "punishreason",
            labelWidth: 110,
            // width: 160,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            // type: "textarea",
            // width: 160,
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
            width: 160,
          },
          {
            label: "批准文号",
            prop: "punisnum",
            // type: "date",
            // format: "yyyy-MM-dd",
            // valueFormat: "yyyy-MM-dd",
            // // type: "textarea",
            labelWidth: 110,
            // width: 160,
          },
        ],
        column: punishColimn,
      },
      punishSearch: {},
      punishLoading: true,
@@ -102,7 +64,7 @@
    };
  },
  mounted() {
    console.log(this.form, "pu");
    // console.log(this.form, "pu");
    this.punishOnLoad(this.punishPage);
  },
  methods: {
@@ -116,10 +78,13 @@
        this.form.departmentid
      ).then((res) => {
        const data = res.data.data;
        this.punishPage.total = data.total;
        this.punishData = data.records;
        console.log(this.punishData, "pu");
        for (var k in this.punishData) {
          this.punishData[k]["enterprisename"] = this.form.enterprisename;
        }
        // console.log(this.punishData, "pu123");
        this.punishLoading = false;
        this.$refs.punishCrud.refreshTable();
        this.$refs.punishCrud.doLayout();
@@ -149,6 +114,9 @@
    punishSizeChange(pageSize) {
      this.punishPage.pageSize = pageSize;
    },
    punishRefreshcCange() {
      this.punishOnLoad(this.punishPage, this.punishQuery);
    },
  },
};
</script>
src/views/securityCompany/confess.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:01:42
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:32:53
 * menu-name 保安服务公司查询
 */
<template>
@@ -42,7 +42,7 @@
          :size="size"
          :type="type"
          @click.stop="handleRowClick(row)"
          >查看
          >台账查询
        </el-button>
        <el-button
          :size="size"
@@ -99,71 +99,14 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
import { companyColimn, punishColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
        column: punishColimn,
      },
      dialogVisible: false,
@@ -190,7 +133,7 @@
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 160,
        menuWidth: 280,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
@@ -411,7 +354,7 @@
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      obj["name"] = "保安公司台账信息";
      console.log(obj, "obj");
      this.$router.push({
        path: `/securityCompany/index`,
src/views/securityCompany/regulatoryInformation.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:06:14
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:22:23
 * menu-name 监管信息
 */
<template>
@@ -346,7 +346,7 @@
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细资料";
      obj["name"] = "保安公司台账信息";
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
src/views/securityCompany/security.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:01:42
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 16:08:12
 * menu-name 保安服务公司查询
 */
<template>
@@ -42,7 +42,14 @@
          :size="size"
          :type="type"
          @click.stop="handleRowClick(row)"
          >查看
          >台账查询
        </el-button>
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          @click.stop="handleRowlood(row)"
          >附件预览
        </el-button>
        <el-button
          :size="size"
@@ -99,78 +106,14 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
import { companyColimn, punishColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚单位",
            prop: "penalty",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
        column: punishColimn,
      },
      dialogVisible: false,
@@ -197,7 +140,7 @@
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 160,
        menuWidth: 280,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
@@ -417,14 +360,28 @@
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      console.log(row, "row");
      var obj = row;
      obj["name"] = "保安公司详细信息";
      obj["name"] = "保安公司台账信息";
      console.log(obj, "obj");
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
      });
    },
    handleRowlood(row) {
      //附件预览1
      // console.log(row);
      this.$router.push({
        // path: "/attach/index",
        path: "/resource/attachCopy",
        // redirect: { name: "foo" },
        // query: { row: row },
        query: { deptid: row.departmentid, type: "4" },
        // query: { deptid: row.departmentid },
        // params: { row: row.identificationnumber },
      });
    },
  },
};
</script>
src/views/securityCompany/securityCrossRegion.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:01:42
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:31:06
 * menu-name 保安服务公司查询
 */
<template>
@@ -42,7 +42,7 @@
          :size="size"
          :type="type"
          @click.stop="handleRowClick(row)"
          >查看
          >台账查询
        </el-button>
        <el-button
          :size="size"
@@ -99,71 +99,14 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
import { companyColimn, punishColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
        column: punishColimn,
      },
      dialogVisible: false,
@@ -190,7 +133,7 @@
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 160,
        menuWidth: 280,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
@@ -411,7 +354,7 @@
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      obj["name"] = "保安公司台账信息";
      console.log(obj, "obj");
      this.$router.push({
        path: `/securityCompany/index`,
src/views/securityCompany/train.vue
@@ -1,8 +1,8 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:01:42
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-15 11:32:51
 * menu-name 保安服务公司查询
 */
<template>
@@ -42,7 +42,7 @@
          :size="size"
          :type="type"
          @click.stop="handleRowClick(row)"
          >查看
          >台账查询
        </el-button>
        <el-button
          :size="size"
@@ -99,71 +99,14 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
import { companyColimn, punishColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
        column: punishColimn,
      },
      dialogVisible: false,
@@ -190,7 +133,7 @@
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 160,
        menuWidth: 280,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
@@ -411,7 +354,7 @@
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      obj["name"] = "保安公司台账信息";
      console.log(obj, "obj");
      this.$router.push({
        path: `/securityCompany/index`,
src/views/securityGuardManagement/data.js
New file
@@ -0,0 +1,716 @@
//保安员基本信息
export var securityBaseInfoColumn = [{
    label: "",
    labelWidth: "20",
    type: 'title',
    prop: "title",
    span: 24,
    styles: {
        fontSize: '24px'
    }
},
{
    label: "所属保安公司",
    prop: "deptId",
    type: "tree",
    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
    // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
    props: {
        label: "title",
        value: "id",
    },
    disabled: true,
    span: 24,
},
{
    label: "登录账号",
    prop: "account",
    disabled: true
},
{
    label: "用户姓名",
    prop: "realName",
    disabled: true,
},
{
    label: "用户昵称",
    prop: "name",
    disabled: true
},
{
    label: "手机号码",
    prop: "phone",
    disabled: true
},
{
    label: "电子邮箱",
    prop: "email",
    disabled: true
},
{
    label: "身份证号",
    prop: "cardid",
    disabled: true
},
{
    label: "籍贯",
    prop: "nativeplace",
    disabled: true
},
{
    label: "民族",
    prop: "nation",
    disabled: true
},
{
    label: "是否持证",
    prop: "hold",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
    props: {
        label: "dictValue",
        value: "dictKey",
    },
    type: "select",
    disabled: true
},
{
    label: "保安员证编号",
    prop: "securitynumber",
    disabled: true
},
{
    label: "所属辖区",
    prop: "jurisdiction",
    // multiple: true,
    type: "tree",
    dicUrl: "/api/jurisdiction/lazy-tree",
    props: {
        label: "title",
        value: "id",
    },
    disabled: true
},
{
    label: "最高学历",
    prop: "education",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    slot: true,
    disabled: true
},
{
    label: "政治面貌",
    prop: "politicaloutlook",
    disabled: true
},
{
    label: "身高",
    prop: "height",
    disabled: true
},
{
    label: "联系地址",
    prop: "address",
    disabled: true
},
{
    label: "户口所在地",
    prop: "registered",
    disabled: true
},
{
    label: "入职时间",
    prop: "rtime",
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    disabled: true
},
{
    label: "用户性别",
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
    },
    {
        label: "女",
        value: 2
    },
    {
        label: "未知",
        value: 3
    }
    ],
    disabled: true
},
{
    label: "用户生日",
    type: "date",
    prop: "birthday",
    disabled: true
}
]
export var securityBaseInfoColumns = [{
    label: "所属保安单位",
    prop: "tenantId",
    type: "tree",
    dicUrl: "/api/blade-system/tenant/select",
    props: {
        label: "tenantName",
        value: "tenantId"
    },
    disabled: true,
    span: 24,
},
{
    label: "登录账号",
    prop: "account",
    disabled: true
},
{
    label: "用户姓名",
    prop: "realName",
    rules: [{
        required: true,
        message: "请输入用户姓名",
        trigger: "blur"
    }, {
        min: 2,
        max: 5,
        message: '姓名长度在2到5个字符'
    }]
},
{
    label: "用户昵称",
    prop: "name"
},
{
    label: "手机号码",
    prop: "phone",
    overHidden: true,
    rules: [{
        required: true,
        message: "请输入手机号",
        trigger: "blur"
    }]
},
{
    label: "电子邮箱",
    prop: "email",
    hide: true,
    overHidden: true
},
{
    label: "身份证号",
    prop: "cardid",
    hide: true,
    overHidden: true,
    rules: [{
        required: true,
        message: "请输入身份证号",
        trigger: "blur"
    }]
},
{
    label: "籍贯",
    prop: "nativeplace",
    hide: true,
    overHidden: true
},
{
    label: "民族",
    prop: "nation",
    hide: true,
    overHidden: true
},
{
    label: "最高学历",
    prop: "education",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    slot: true,
    rules: [{
        required: true,
        message: "请选择学历",
        trigger: "blur"
    }]
},
{
    label: "政治面貌",
    prop: "politicaloutlook",
    hide: true,
    overHidden: true
},
{
    label: "身高",
    prop: "height",
    hide: true,
    overHidden: true
},
{
    label: "联系地址",
    prop: "address",
    hide: true,
    overHidden: true
},
{
    label: "户口所在地",
    prop: "registered",
    hide: true,
    overHidden: true
},
{
    label: "入职时间",
    prop: "rtime",
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    hide: true,
    overHidden: true
},
{
    label: "用户性别",
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
    },
    {
        label: "女",
        value: 2
    },
    {
        label: "未知",
        value: 3
    }
    ],
    hide: true
},
{
    label: "用户生日",
    type: "date",
    prop: "birthday",
    hide: true
}
]
//从业记录
export var practitionersColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
}, {
    label: '单位名称',
    prop: "companyname",
    formslot: true,
}, {
    label: '部门',
    prop: "department",
    formslot: true,
}, {
    label: '岗位',
    prop: "post",
    formslot: true,
}, {
    label: '岗位职责',
    prop: "responsibilities",
    formslot: true,
}, {
    label: '服务派遣单位',
    prop: "serverDispatchUnit",
    minWidth: 180,
    overHidden: true,
    formslot: true,
}, {
    label: '入职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "entrytime",
    formslot: true,
}, {
    label: '离职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "departuretime",
    formslot: true,
}, {
    label: '离职原因',
    prop: "leaving",
    formslot: true,
}]
export var practitionersColumns = [{
    width: 200,
    label: '单位名称',
    prop: "companyname",
    formslot: true,
}, {
    width: 200,
    label: '部门',
    prop: "department",
    formslot: true,
}, {
    width: 200,
    label: '岗位',
    prop: "post",
    formslot: true,
}, {
    width: 200,
    label: '岗位职责',
    prop: "responsibilities",
    formslot: true,
}, {
    width: 200,
    label: '入职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "entryTime",
    formslot: true,
}, {
    width: 200,
    label: '离职时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "departureTime",
    formslot: true,
}, {
    width: 200,
    label: '离职原因',
    prop: "leaving",
    formslot: true,
}]
//表现
export var trackRecordColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
}, {
    label: '时间',
    type: 'date',
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    prop: "time",
    formslot: true,
},
// {
//     label: '工作态度',
//     prop: "workingattitude",
//     formslot: true,
// },
{
    label: '工作表现',
    prop: "achievements",
    formslot: true,
}, {
    label: '表现评定',
    prop: "score",
    type: "select",
    // dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType",
    // props: {
    //     label: "dictValue",
    //     value: "dictKey"
    // },
    dicData: [{
        label: "优秀",
        value: 0
    },
    {
        label: "良好",
        value: 1
    },
    {
        label: "一般",
        value: 2
    },
    {
        label: "差",
        value: 3
    },
    ],
    dataType: "number",
    slot: true,
    rules: [{
        required: true,
        message: "请选择表现",
        trigger: "blur"
    }]
}
    // {
    //     label: '服务公司',
    //     prop: "departmentName",
    //     formslot: true,
    // }
]
export var securityFormPageColumn = [{
    label: "姓名",
    prop: "realName",
    search: true,
    searchSpan: 3,
    width: 60,
    searchLabelWidth: 50,
    display: false
},
{
    label: "所属保安公司",
    searchLabelWidth: "110",
    // prop: "deptName",
    prop: "deptId",
    type: "tree",
    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
    props: {
        label: "title",
        value: "id",
    },
    // hide: true,
    slot: true,
    searchSpan: 5,
    display: false,
    search: true,
    minWidth: 220
},
// {
//     label: "所属保安公司",
//     searchLabelWidth: "110",
//     prop: "deptName",
//     // type: "tree",
//     // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
//     // props: {
//     //     label: "title",
//     //     value: "id",
//     // },
//     // slot: true,
//     // searchSpan: 5,
//     display: false,
//     // search: true,
//     minWidth: 260
// },
{
    label: "性别",
    prop: "sex",
    width: 55,
    type: "select",
    dicData: [{
        label: "男",
        value: 1,
    },
    {
        label: "女",
        value: 2,
    },
    {
        label: "未知",
        value: 3,
    },
    ],
    display: false
},
{
    label: "身份证号码",
    prop: "cardid",
    search: true,
    searchLabelWidth: 90,
    searchSpan: 5,
    minWidth: 140,
    display: false
},
{
    label: "籍贯",
    prop: "nativeplace",
    hide: true,
    display: false
},
{
    label: "民族",
    prop: "nation",
    hide: true,
    width: 55,
    display: false
},
{
    label: "出生日期",
    prop: "birthday",
    type: "date",
    format: "yyyy-MM-dd",
    valueFormat: "yyyy-MM-dd",
    display: false,
    hide: true,
},
{
    label: "年龄",
    prop: "age",
    width: 55,
    display: false
},
{
    label: "学历",
    prop: "education",
    display: false,
    width: 90,
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    type: "select",
    // hide: true,
    rules: [{
        required: true,
        message: "请选择学历",
        trigger: "blur"
    }],
},
{
    label: "联系电话",
    prop: "phone",
    minWidth: 100,
    display: false
},
{
    label: "健康状态",
    prop: "healstats",
    hide: true,
    display: false
},
{
    label: "保安证编号",
    prop: "securitynumber",
    search: true,
    searchLabelWidth: 90,
    minWidth: 105,
    searchSpan: 4,
    addDisplay: false,
    editDisplay: false,
    // hide: true,
},
{
    label: "入职时间",
    prop: "rtime",
    hide: true,
    display: false
},
// {
//     label: "是否派遣",
//     prop: "dispatch",
//     // hide: true,
//     type: 'select',
//     // display: false,
//     dicData: [
//         {
//             label: '未派遣',
//             value: 1
//         }, {
//             label: '已派遣',
//             value: 0
//         }
//     ]
// },
{
    label: '是否派遣',
    prop: 'dispatch',
    type: 'select',
    editDisplay: false,
    addDisplay: false,
    dicData: [{
        label: '未派遣',
        value: '1'
    }, {
        label: '已派遣',
        value: '0'
    }]
},
{
    label: "是否持证",
    prop: "hold",
    slot: true,
    search: true,
    searchSpan: 3,
    width: 69,
    display: false,
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    type: "select",
    rules: [{
        required: true,
        message: "请选择",
        trigger: "blur"
    }],
},
// {
//     label: "入职时间",
//     prop: "rtime",
//     type: "datetime",
//     format: "yyyy-MM-dd",
//     valueFormat: "yyyy-MM-dd",
//     searchRange: true,
//     searchSpan: 6,
//     hide: true,
//     addDisplay: false,
//     editDisplay: false,
//     viewDisplay: false,
//     search: true,
//     rules: [{
//         required: true,
//         message: "请输入时间",
//         trigger: "blur"
//     }]
// },
{
    label: "在职状态",
    prop: "status",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    dataType: "number",
    searchValue: 1,
    display: false,
    hide: true,
    searchSpan: 3,
    width: 80,
    search: true,
    rules: [{
        required: true,
        message: "请选择在职状态",
        trigger: "blur"
    }]
},
]
src/views/securityGuardManagement/register.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-09-10 16:47:56
 * @Last Modified time: 2021-09-14 17:56:13
 * menu-name 保安员注册查询
 */
<template>
@@ -93,6 +93,13 @@
                >荣誉录入</el-button
              >
              <el-button
                icon="el-icon-finished"
                :size="size"
                :type="type"
                @click.stop="trackRecord(row)"
                >现实表现
              </el-button>
              <el-button
                :size="size"
                :type="type"
                class="zhengJian-icon"
@@ -107,10 +114,21 @@
                :size="size"
                :type="type"
                class="zhengJian-icon"
                :disabled="row.hold != 1"
                :title="row.hold != 1 ? '暂无证件或已吊销' : ''"
                v-if="row.hold != 3"
                @click.stop="handleCredentials(row)"
                :title="row.hold == 2 ? '暂无证件' : ''"
                :disabled="row.hold == 2"
                >证件吊销</el-button
              >
              <el-button
                icon="icon-zhengjian"
                :size="size"
                :type="type"
                class="zhengJian-icon"
                v-if="row.hold == 3"
                @click.stop="handleCredentialssee(row)"
                >吊销原因</el-button
              >
            </template>
          </avue-crud>
@@ -201,6 +219,16 @@
            }}</span>
          </div>
          <div class="bmb-b">
            地址:<span class="bmb-b-s">{{
              objVisiblecertificates.address
            }}</span>
          </div>
          <div class="bmb-b">
            身份证:<span class="bmb-b-s">{{
              objVisiblecertificates.cardid
            }}</span>
          </div>
          <div class="bmb-b">
            发证机关:<span class="bmb-b-s">南昌市公安局</span>
          </div>
          <div class="bmb-b">
@@ -254,6 +282,22 @@
        </span>
      </div> -->
    </div>
    <el-dialog
      title="现实表现"
      append-to-body
      :visible.sync="trackRecordVisible"
    >
      <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        @row-save="rowSave2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        :table-loading="loading2"
      >
      </avue-crud>
    </el-dialog>
  </div>
</template>
@@ -269,6 +313,15 @@
import website from "@/config/website";
import { getToken } from "@/util/auth";
import { addhonor, getER } from "@/api/register/honor";
import {
  //现实表现
  trackRecordadd,
  trackRecordupdate,
  trackRecordpage,
  trackRecordremove,
} from "@/api/performance/performance";
import { trackRecordColumn } from "./data";
export default {
  data() {
@@ -289,6 +342,36 @@
      }
    };
    return {
      //现实表现
      securityid2: "",
      loading2: true,
      page2: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      query2: {},
      data2: [],
      option2: {
        menu: false,
        height: 400,
        addBtn: false,
        delBtn: false,
        editBtn: false,
        widtd: "auto",
        calcHeight: 54,
        border: true, //liu
        stripe: true,
        tip: false,
        index: true,
        dialogClickModal: false,
        headerAlign: "center",
        align: "center",
        column: trackRecordColumn,
      },
      trackRecordData: [],
      trackRecordVisible: false,
      dialogVisiblecertificates: false,
      objVisiblecertificates: {},
      erweima: "", //二维码
@@ -325,7 +408,13 @@
            ],
          },
          {
            label: "荣誉内容",
            label: "发证机关",
            prop: "paperUnit",
            span: 24,
            labelWidth: 110,
          },
          {
            label: "荣誉情况",
            prop: "honor",
            span: 24,
            type: "textarea",
@@ -371,63 +460,41 @@
        treeLoad: function (node, resolve) {
          const parentId = node.level === 0 ? 0 : node.data.id;
          if (parentId == 0) {
            getDeptLazyTree(parentId).then((res) => {
              resolve(
                res.data.data.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          } else if (parentId == '1372091709474910209') {
          } else if (parentId == "1372091709474910209") {
            getDeptLazyTree(parentId).then((res) => {
              resolve(
                res.data.data[0].children.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          } else {
            getDeptLazyTree(parentId).then((res) => {
              res.data.data = [];
              resolve(
                res.data.data.map((item) => {
                  return {
                    ...item,
                    leaf: !item.hasChildren,
                  };
                })
              );
            });
          }
        },
        addBtn: false,
        menu: false,
@@ -449,6 +516,8 @@
        height: "auto",
        calcHeight: 80,
        tip: false,
        // 操作栏宽度
        menuWidth: 398,
        searchShowBtn: false,
        searchShow: true,
        border: true,
@@ -457,8 +526,6 @@
        viewBtn: false,
        //dialogType: 'drawer',
        dialogClickModal: false,
        // 操作栏宽度
        menuWidth: 310,
        column: [
          {
            label: "姓名",
@@ -810,6 +877,78 @@
    }
  },
  methods: {
    //现实表现↓
    trackRecord(row) {
      // console.log(row);
      this.securityid2 = row.id;
      this.getPerformancePageInfo(this.page2);
    },
    getPerformancePageInfo(page) {
      var param = {
        securityid: this.securityid2,
      };
      this.trackRecordVisible = true;
      trackRecordpage(page.currentPage, page.pageSize, param).then((res2) => {
        const data = res2.data.data;
        this.page2.total = data.total;
        this.data2 = data.records;
        // console.log(this.data2, 1);
        this.loading2 = false;
      });
    },
    rowSave2(form, done, loading) {
      form.securityid = this.securityid2;
      trackRecordadd(form).then(
        (res) => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    rowUpdate2(row, index, done, loading) {
      row.securityid = this.securityid2;
      trackRecordupdate(row).then(
        () => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel2(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return trackRecordremove(row.id);
        })
        .then(() => {
          this.getPerformancePageInfo(this.page2);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    //现实表现↑
    rowClickSelf(row) {
      console.log(row, "baoan");
      this.$router.push({
@@ -1058,41 +1197,31 @@
    },
    // 证件吊销事件
    handleCredentials(row) {
      console.log(row);
      // return;
      if (row.hold == 2) {
        this.$message({
          type: "info",
          message: "证件未拥有!",
        });
      } else if (row.hold == 3) {
        this.$message({
          type: "info",
          message: "证件已吊销!",
        });
      } else if (row.hold == 1) {
        this.$confirm("是否吊销该人员的证件?", "提示", {
          confirmButtonText: "是",
          cancelButtonText: "否",
          type: "warning",
        })
          .then(() => {
            updateHold(3, row.cardid).then((res) => {
              console.log(res);
              this.$message({
                type: "success",
                message: "吊销成功!",
              });
              this.refreshChange();
      // console.log(row);
      this.$prompt("证件吊销原因", "提示", {
        confirmButtonText: "确定吊销",
        cancelButtonText: "取消",
        inputErrorMessage: "",
      })
        .then(({ value }) => {
          // console.log(value);
          updateHold(3, row.cardid, value).then((res) => {
            this.$message({
              type: "success",
              message: "操作成功",
            });
          })
          .catch(() => {
            // this.$message({
            //   type: "info",
            //   message: "已取消删除",
            // });
            this.refreshChange();
          });
      }
        })
        .catch(() => {});
    },
    handleCredentialssee(see) {
      var str = ` <div><span>吊销时间:</span><span>${see.holdvtime}</span></div>
              <div><span>吊销内容:</span><span>${see.holdv}</span></div>`;
      this.$alert(str, "吊销原因", {
        dangerouslyUseHTMLString: true,
      });
    },
  },
};
@@ -1278,15 +1407,15 @@
  .bmb-b {
    padding-left: 20px;
    box-sizing: border-box;
    height: 3.9rem;
    height: 2.9rem;
    margin-left: 3rem;
    width: 100%;
    font-size: 2rem;
    font-size: 1.5rem;
    font-weight: 300;
    .bmb-b-s {
      display: inline-block;
      width: 20rem;
      font-size: 2rem;
      font-size: 1.5rem;
      font-weight: 300;
    }
  }