zhuzhuanzhuan
2023-10-30 029a6d4f2739cee27c7857af060b119eb461878f
Merge remote-tracking branch 'origin/master'

# Conflicts:
# src/views/dashboard/Analysis.vue
已添加1个文件
已修改38个文件
4801 ■■■■■ 文件已修改
src/views/dashboard/IndexBdc.vue 957 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/IndexChart.vue 578 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/IndexTask.vue 641 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/Monitor.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/Workplace.vue 539 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/Daily3MaintenanceOrderList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyInspectionOrderList.vue 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyMaintenanceOrderList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfAll.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfCrane.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfEnvProEquipment.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfFilesCarousel.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfPressureVessel.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfProduct.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfRide.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfTester.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfTruck.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfWeldingMachine.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/InspectionCycleList.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/MaintenanceCycleList.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderModal.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionStandardList.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/JSelectDailylnspectionStandardModal.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/EquipmentModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/inspectionCycle/InspectionCycleForm.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/maintenanceCycle/MaintenanceCycleForm.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/RoleUserList.vue 999 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserRoleModalNew.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Login.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/IndexBdc.vue
@@ -1,9 +1,21 @@
<template>
  <div class="page-header-index-wide">
    <a-row :gutter="24">
      <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
        <chart-card :loading="loading" title="受理量" :total="cardCount.sll | NumberFormat">
          <a-tooltip title="指标说明" slot="action">
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="受理量"
          :total="cardCount.sll | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
@@ -12,45 +24,98 @@
          <template slot="footer">今日受理量:<span>{{ todaySll }}</span></template>
        </chart-card>
      </a-col>
      <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
        <chart-card :loading="loading" title="办结量" :total="cardCount.bjl | NumberFormat">
          <a-tooltip title="指标说明" slot="action">
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="办结量"
          :total="cardCount.bjl | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-area :data-source="chartData.bjl"/>
            <mini-area :data-source="chartData.bjl" />
          </div>
          <template slot="footer">今日办结量:<span>{{ todayBjl }}</span></template>
        </chart-card>
      </a-col>
      <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
        <chart-card :loading="loading" title="用户受理量" :total="cardCount.isll | NumberFormat">
          <a-tooltip title="指标说明" slot="action">
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="用户受理量"
          :total="cardCount.isll | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-bar :datasource="chartData.isll" :height="50"/>
            <mini-bar
              :datasource="chartData.isll"
              :height="50"
            />
          </div>
          <template slot="footer">用户今日受理量:<span>{{ todayISll }}</span></template>
        </chart-card>
      </a-col>
      <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">
        <chart-card :loading="loading" title="用户办结量" :total="cardCount.ibjl | NumberFormat">
          <a-tooltip title="指标说明" slot="action">
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="用户办结量"
          :total="cardCount.ibjl | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-bar :datasource="chartData.ibjl" :height="50"/>
            <mini-bar
              :datasource="chartData.ibjl"
              :height="50"
            />
          </div>
          <template slot="footer">用户今日办结量:<span>{{ todayIBjl }}</span></template>
        </chart-card>
      </a-col>
    </a-row>
    <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}">
    <a-card
      :loading="loading"
      :bordered="false"
      :body-style="{padding: '0'}"
    >
      <div class="salesCard">
        <a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
          <div class="extra-wrapper" slot="tabBarExtraContent">
        <a-tabs
          default-active-key="1"
          size="large"
          :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}"
        >
          <div
            class="extra-wrapper"
            slot="tabBarExtraContent"
          >
            <div class="extra-item">
              <a>今日</a>
              <a>本周</a>
@@ -60,18 +125,50 @@
            <a-range-picker :style="{width: '256px'}" />
          </div>
          <a-tab-pane loading="true" tab="受理监管" key="1">
          <a-tab-pane
            loading="true"
            tab="受理监管"
            key="1"
          >
            <a-row>
              <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
              <a-col
                :xl="16"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <index-bar title="受理量统计" />
              </a-col>
              <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
              <a-col
                :xl="8"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <a-card title="快速开始 / ä¾¿æ·å¯¼èˆª" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
                <a-card
                  title="快速开始 / ä¾¿æ·å¯¼èˆª"
                  style="margin-bottom: 24px"
                  :bordered="false"
                  :body-style="{padding: 0}"
                >
                  <div class="item-group">
                    <a-row>
                      <a-col :class="'more-btn'" :span="12" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
                        <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
                      <a-col
                        :class="'more-btn'"
                        :span="12"
                        v-for="(item,index) in registerTypeList"
                        :key=" 'registerType'+index "
                      >
                        <a-button
                          @click="goPage(index)"
                          style="margin-bottom:10px"
                          size="small"
                          type="primary"
                          ghost
                        >{{ item.text }}</a-button>
                      </a-col>
                    </a-row>
                  </div>
@@ -81,18 +178,53 @@
            </a-row>
          </a-tab-pane>
          <a-tab-pane tab="交互监管" key="2">
          <a-tab-pane
            tab="交互监管"
            key="2"
          >
            <a-row>
              <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
                <bar-multid :sourceData="jhjgData" :fields="jhjgFields" title="平台与部门交互量统计"></bar-multid>
              <a-col
                :xl="16"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <bar-multid
                  :sourceData="jhjgData"
                  :fields="jhjgFields"
                  title="平台与部门交互量统计"
                ></bar-multid>
              </a-col>
              <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
              <a-col
                :xl="8"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <a-card title="快速开始 / ä¾¿æ·å¯¼èˆª" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
                <a-card
                  title="快速开始 / ä¾¿æ·å¯¼èˆª"
                  style="margin-bottom: 24px"
                  :bordered="false"
                  :body-style="{padding: 0}"
                >
                  <div class="item-group">
                    <a-row>
                      <a-col :class="'more-btn'" :span="12" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
                        <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
                      <a-col
                        :class="'more-btn'"
                        :span="12"
                        v-for="(item,index) in registerTypeList"
                        :key=" 'registerType'+index "
                      >
                        <a-button
                          @click="goPage(index)"
                          style="margin-bottom:10px"
                          size="small"
                          type="primary"
                          ghost
                        >{{ item.text }}</a-button>
                      </a-col>
                    </a-row>
                  </div>
@@ -102,25 +234,63 @@
            </a-row>
          </a-tab-pane>
          <a-tab-pane tab="存储监管" key="4">
          <a-tab-pane
            tab="存储监管"
            key="4"
          >
            <a-row>
              <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
              <a-col
                :xl="16"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <a-row>
                  <template v-if="diskInfo && diskInfo.length>0">
                    <a-col :span="12" v-for="(item,index) in diskInfo" :key=" 'diskInfo'+index ">
                      <dash-chart-demo :title="item.name" :datasource="item.restPPT"></dash-chart-demo>
                    <a-col
                      :span="12"
                      v-for="(item,index) in diskInfo"
                      :key=" 'diskInfo'+index "
                    >
                      <dash-chart-demo
                        :title="item.name"
                        :datasource="item.restPPT"
                      ></dash-chart-demo>
                    </a-col>
                  </template>
                </a-row>
              </a-col>
              <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">
              <a-col
                :xl="8"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <a-card title="快速开始 / ä¾¿æ·å¯¼èˆª" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
                <a-card
                  title="快速开始 / ä¾¿æ·å¯¼èˆª"
                  style="margin-bottom: 24px"
                  :bordered="false"
                  :body-style="{padding: 0}"
                >
                  <div class="item-group">
                    <a-row>
                      <a-col :class="'more-btn'" :span="10" v-for="(item,index) in registerTypeList" :key=" 'registerType'+index ">
                        <a-button @click="goPage(index)" style="margin-bottom:10px" size="small" type="primary" ghost>{{ item.text }}</a-button>
                      <a-col
                        :class="'more-btn'"
                        :span="10"
                        v-for="(item,index) in registerTypeList"
                        :key=" 'registerType'+index "
                      >
                        <a-button
                          @click="goPage(index)"
                          style="margin-bottom:10px"
                          size="small"
                          type="primary"
                          ghost
                        >{{ item.text }}</a-button>
                      </a-col>
                    </a-row>
                  </div>
@@ -136,36 +306,83 @@
    </a-card>
    <a-row :gutter="12">
      <a-card :loading="loading" :class="{ 'anty-list-cust':true }" :bordered="false" :style="{ marginTop: '24px' }">
      <a-card
        :loading="loading"
        :class="{ 'anty-list-cust':true }"
        :bordered="false"
        :style="{ marginTop: '24px' }"
      >
        <a-tabs v-model="indexBottomTab" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">
          <div class="extra-wrapper" slot="tabBarExtraContent">
            <a-radio-group v-model="indexRegisterType" @change="changeRegisterType">
        <a-tabs
          v-model="indexBottomTab"
          size="large"
          :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}"
        >
          <div
            class="extra-wrapper"
            slot="tabBarExtraContent"
          >
            <a-radio-group
              v-model="indexRegisterType"
              @change="changeRegisterType"
            >
              <a-radio-button value="转移登记">转移登记</a-radio-button>
              <a-radio-button value="抵押登记">抵押登记</a-radio-button>
              <a-radio-button value="">所有</a-radio-button>
            </a-radio-group>
          </div>
          <a-tab-pane loading="true" tab="业务流程限时监管" key="1">
          <a-tab-pane
            loading="true"
            tab="业务流程限时监管"
            key="1"
          >
            <a-table :dataSource="dataSource1" size="default" rowKey="id" :columns="columns" :pagination="ipagination1" @change="tableChange1">
              <template slot="flowRate" slot-scope="text, record, index">
                <a-progress :strokeColor="getPercentColor(record.flowRate)" :format="getPercentFormat" :percent="getFlowRateNumber(record.flowRate)" style="width:80px" />
            <a-table
              :dataSource="dataSource1"
              size="default"
              rowKey="id"
              :columns="columns"
              :pagination="ipagination1"
              @change="tableChange1"
            >
              <template
                slot="flowRate"
                slot-scope="text, record, index"
              >
                <a-progress
                  :strokeColor="getPercentColor(record.flowRate)"
                  :format="getPercentFormat"
                  :percent="getFlowRateNumber(record.flowRate)"
                  style="width:80px"
                />
              </template>
            </a-table>
          </a-tab-pane>
          <a-tab-pane loading="true" tab="业务节点限时监管" key="2">
            <a-table :dataSource="dataSource2" size="default" rowKey="id" :columns="columns2" :pagination="ipagination2" @change="tableChange2">
              <template slot="flowRate" slot-scope="text, record, index">
          <a-tab-pane
            loading="true"
            tab="业务节点限时监管"
            key="2"
          >
            <a-table
              :dataSource="dataSource2"
              size="default"
              rowKey="id"
              :columns="columns2"
              :pagination="ipagination2"
              @change="tableChange2"
            >
              <template
                slot="flowRate"
                slot-scope="text, record, index"
              >
                <span style="color: red;">{{ record.flowRate }}小时</span>
              </template>
            </a-table>
          </a-tab-pane>
        </a-tabs>
      </a-card>
    </a-row>
@@ -175,345 +392,355 @@
<script>
  import ACol from "ant-design-vue/es/grid/Col"
  import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
  import ChartCard from '@/components/ChartCard'
  import MiniBar from '@/components/chart/MiniBar'
  import MiniArea from '@/components/chart/MiniArea'
  import IndexBar from '@/components/chart/IndexBar'
  import BarMultid from '@/components/chart/BarMultid'
  import DashChartDemo from '@/components/chart/DashChartDemo'
import ACol from "ant-design-vue/es/grid/Col"
import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
import ChartCard from '@/components/ChartCard'
import MiniBar from '@/components/chart/MiniBar'
import MiniArea from '@/components/chart/MiniArea'
import IndexBar from '@/components/chart/IndexBar'
import BarMultid from '@/components/chart/BarMultid'
import DashChartDemo from '@/components/chart/DashChartDemo'
  const jhjgData = [
    { type: '房管', '1月': 900, '2月': 1120, '3月': 1380, '4月': 1480, '5月': 1450, '6月': 1100, '7月':1300, '8月':900,'9月':1000 ,'10月':1200 ,'11月':600 ,'12月':900 },
    { type: '税务', '1月':1200, '2月': 1500, '3月': 1980, '4月': 2000, '5月': 1000, '6月': 600, '7月':900, '8月':1100,'9月':1300 ,'10月':2000 ,'11月':900 ,'12月':1100 },
    { type: '不动产', '1月':2000, '2月': 1430, '3月': 1300, '4月': 1400, '5月': 900, '6月': 500, '7月':600, '8月':1000,'9月':600 ,'10月':1000 ,'11月':1500 ,'12月':1200 }
  ]
const jhjgData = [
  { type: '房管', '1月': 900, '2月': 1120, '3月': 1380, '4月': 1480, '5月': 1450, '6月': 1100, '7月': 1300, '8月': 900, '9月': 1000, '10月': 1200, '11月': 600, '12月': 900 },
  { type: '税务', '1月': 1200, '2月': 1500, '3月': 1980, '4月': 2000, '5月': 1000, '6月': 600, '7月': 900, '8月': 1100, '9月': 1300, '10月': 2000, '11月': 900, '12月': 1100 },
  { type: '不动产', '1月': 2000, '2月': 1430, '3月': 1300, '4月': 1400, '5月': 900, '6月': 500, '7月': 600, '8月': 1000, '9月': 600, '10月': 1000, '11月': 1500, '12月': 1200 }
]
  const jhjgFields=[
    '1月','2月','3月','4月','5月','6月',
    '7月','8月','9月','10月','11月','12月'
  ]
const jhjgFields = [
  '1月', '2月', '3月', '4月', '5月', '6月',
  '7月', '8月', '9月', '10月', '11月', '12月'
]
  const xljgData = [
    {type:'一月',"房管":1.12,"税务":1.55,"不动产":1.2},
    {type:'二月',"房管":1.65,"税务":1.32,"不动产":1.42},
    {type:'三月',"房管":1.85,"税务":1.1,"不动产":1.5},
const xljgData = [
  { type: '一月', "房管": 1.12, "税务": 1.55, "不动产": 1.2 },
  { type: '二月', "房管": 1.65, "税务": 1.32, "不动产": 1.42 },
  { type: '三月', "房管": 1.85, "税务": 1.1, "不动产": 1.5 },
    {type:'四月',"房管":1.33,"税务":1.63,"不动产":1.4},
    {type:'五月',"房管":1.63,"税务":1.8,"不动产":1.7},
    {type:'六月',"房管":1.85,"税务":1.98,"不动产":1.8},
  { type: '四月', "房管": 1.33, "税务": 1.63, "不动产": 1.4 },
  { type: '五月', "房管": 1.63, "税务": 1.8, "不动产": 1.7 },
  { type: '六月', "房管": 1.85, "税务": 1.98, "不动产": 1.8 },
    {type:'七月',"房管":1.98,"税务":1.5,"不动产":1.76},
    {type:'八月',"房管":1.48,"税务":1.2,"不动产":1.3},
    {type:'九月',"房管":1.41,"税务":1.9,"不动产":1.6},
  { type: '七月', "房管": 1.98, "税务": 1.5, "不动产": 1.76 },
  { type: '八月', "房管": 1.48, "税务": 1.2, "不动产": 1.3 },
  { type: '九月', "房管": 1.41, "税务": 1.9, "不动产": 1.6 },
    {type:'十月',"房管":1.1,"税务":1.1,"不动产":1.4},
    {type:'十一月',"房管":1.85,"税务":1.6,"不动产":1.5},
    {type:'十二月',"房管":1.5,"税务":1.4,"不动产":1.3}
  ]
  const xljgFields=["房管","税务","不动产"]
  { type: '十月', "房管": 1.1, "税务": 1.1, "不动产": 1.4 },
  { type: '十一月', "房管": 1.85, "税务": 1.6, "不动产": 1.5 },
  { type: '十二月', "房管": 1.5, "税务": 1.4, "不动产": 1.3 }
]
const xljgFields = ["房管", "税务", "不动产"]
  const dataCol1 = [{
    title: '业务号',
    align:"center",
    dataIndex: 'reBizCode'
  },{
    title: '业务类型',
    align:"center",
    dataIndex: 'type'
  },{
    title: '受理人',
    align:"center",
    dataIndex: 'acceptBy'
  },{
    title: '受理时间',
    align:"center",
    dataIndex: 'acceptDate'
  },{
    title: '当前节点',
    align:"center",
    dataIndex: 'curNode'
  },{
    title: '办理时长',
    align:"center",
    dataIndex: 'flowRate',
    scopedSlots: { customRender: 'flowRate' }
  }];
  const dataSource1=[
    {reBizCode:"1",type:"转移登记",acceptBy:'张三',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:60},
    {reBizCode:"2",type:"抵押登记",acceptBy:'李四',acceptDate:"2019-01-23",curNode:"领导审核",flowRate:30},
    {reBizCode:"3",type:"转移登记",acceptBy:'王武',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:20},
    {reBizCode:"4",type:"转移登记",acceptBy:'赵楼',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:80},
    {reBizCode:"5",type:"转移登记",acceptBy:'钱就',acceptDate:"2019-12-12",curNode:"任务分派",flowRate:90},
    {reBizCode:"6",type:"转移登记",acceptBy:'孙吧',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10},
    {reBizCode:"7",type:"抵押登记",acceptBy:'周大',acceptDate:"2019-04-13",curNode:"任务分派",flowRate:100},
    {reBizCode:"8",type:"抵押登记",acceptBy:'吴二',acceptDate:"2019-05-09",curNode:"任务上报",flowRate:50},
    {reBizCode:"9",type:"抵押登记",acceptBy:'郑爽',acceptDate:"2019-07-12",curNode:"任务处理",flowRate:63},
    {reBizCode:"20",type:"抵押登记",acceptBy:'林有',acceptDate:"2019-12-12",curNode:"任务打回",flowRate:59},
    {reBizCode:"11",type:"转移登记",acceptBy:'码云',acceptDate:"2019-09-10",curNode:"任务签收",flowRate:87},
  ]
const dataCol1 = [{
  title: '业务号',
  align: "center",
  dataIndex: 'reBizCode'
}, {
  title: '业务类型',
  align: "center",
  dataIndex: 'type'
}, {
  title: '受理人',
  align: "center",
  dataIndex: 'acceptBy'
}, {
  title: '受理时间',
  align: "center",
  dataIndex: 'acceptDate'
}, {
  title: '当前节点',
  align: "center",
  dataIndex: 'curNode'
}, {
  title: '办理时长',
  align: "center",
  dataIndex: 'flowRate',
  scopedSlots: { customRender: 'flowRate' }
}];
const dataSource1 = [
  { reBizCode: "1", type: "转移登记", acceptBy: '张三', acceptDate: "2019-01-22", curNode: "任务分派", flowRate: 60 },
  { reBizCode: "2", type: "抵押登记", acceptBy: '李四', acceptDate: "2019-01-23", curNode: "领导审核", flowRate: 30 },
  { reBizCode: "3", type: "转移登记", acceptBy: '王武', acceptDate: "2019-01-25", curNode: "任务处理", flowRate: 20 },
  { reBizCode: "4", type: "转移登记", acceptBy: '赵楼', acceptDate: "2019-11-22", curNode: "部门审核", flowRate: 80 },
  { reBizCode: "5", type: "转移登记", acceptBy: '钱就', acceptDate: "2019-12-12", curNode: "任务分派", flowRate: 90 },
  { reBizCode: "6", type: "转移登记", acceptBy: '孙吧', acceptDate: "2019-03-06", curNode: "任务处理", flowRate: 10 },
  { reBizCode: "7", type: "抵押登记", acceptBy: '周大', acceptDate: "2019-04-13", curNode: "任务分派", flowRate: 100 },
  { reBizCode: "8", type: "抵押登记", acceptBy: '吴二', acceptDate: "2019-05-09", curNode: "任务上报", flowRate: 50 },
  { reBizCode: "9", type: "抵押登记", acceptBy: '郑爽', acceptDate: "2019-07-12", curNode: "任务处理", flowRate: 63 },
  { reBizCode: "20", type: "抵押登记", acceptBy: '林有', acceptDate: "2019-12-12", curNode: "任务打回", flowRate: 59 },
  { reBizCode: "11", type: "转移登记", acceptBy: '码云', acceptDate: "2019-09-10", curNode: "任务签收", flowRate: 87 },
]
  const dataCol2 = [{
    title: '业务号',
    align:"center",
    dataIndex: 'reBizCode'
  },{
    title: '受理人',
    align:"center",
    dataIndex: 'acceptBy'
  },{
    title: '发起时间',
    align:"center",
    dataIndex: 'acceptDate'
  },{
    title: '当前节点',
    align:"center",
    dataIndex: 'curNode'
  },{
    title: '超时时间',
    align:"center",
    dataIndex: 'flowRate',
    scopedSlots: { customRender: 'flowRate' }
  }];
  const dataSource2=[
    {reBizCode:"A001",type:"转移登记",acceptBy:'张四',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:12},
    {reBizCode:"A002",type:"抵押登记",acceptBy:'李吧',acceptDate:"2019-01-23",curNode:"任务签收",flowRate:3},
    {reBizCode:"A003",type:"转移登记",acceptBy:'王三',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:24},
    {reBizCode:"A004",type:"转移登记",acceptBy:'赵二',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:10},
    {reBizCode:"A005",type:"转移登记",acceptBy:'钱大',acceptDate:"2019-12-12",curNode:"任务签收",flowRate:8},
    {reBizCode:"A006",type:"转移登记",acceptBy:'孙就',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10},
    {reBizCode:"A007",type:"抵押登记",acceptBy:'周晕',acceptDate:"2019-04-13",curNode:"部门审核",flowRate:24},
    {reBizCode:"A008",type:"抵押登记",acceptBy:'吴有',acceptDate:"2019-05-09",curNode:"部门审核",flowRate:30},
    {reBizCode:"A009",type:"抵押登记",acceptBy:'郑武',acceptDate:"2019-07-12",curNode:"任务分派",flowRate:1},
    {reBizCode:"A0010",type:"抵押登记",acceptBy:'林爽',acceptDate:"2019-12-12",curNode:"部门审核",flowRate:16},
    {reBizCode:"A0011",type:"转移登记",acceptBy:'码楼',acceptDate:"2019-09-10",curNode:"部门审核",flowRate:7},
  ]
const dataCol2 = [{
  title: '业务号',
  align: "center",
  dataIndex: 'reBizCode'
}, {
  title: '受理人',
  align: "center",
  dataIndex: 'acceptBy'
}, {
  title: '发起时间',
  align: "center",
  dataIndex: 'acceptDate'
}, {
  title: '当前节点',
  align: "center",
  dataIndex: 'curNode'
}, {
  title: '超时时间',
  align: "center",
  dataIndex: 'flowRate',
  scopedSlots: { customRender: 'flowRate' }
}];
const dataSource2 = [
  { reBizCode: "A001", type: "转移登记", acceptBy: '张四', acceptDate: "2019-01-22", curNode: "任务分派", flowRate: 12 },
  { reBizCode: "A002", type: "抵押登记", acceptBy: '李吧', acceptDate: "2019-01-23", curNode: "任务签收", flowRate: 3 },
  { reBizCode: "A003", type: "转移登记", acceptBy: '王三', acceptDate: "2019-01-25", curNode: "任务处理", flowRate: 24 },
  { reBizCode: "A004", type: "转移登记", acceptBy: '赵二', acceptDate: "2019-11-22", curNode: "部门审核", flowRate: 10 },
  { reBizCode: "A005", type: "转移登记", acceptBy: '钱大', acceptDate: "2019-12-12", curNode: "任务签收", flowRate: 8 },
  { reBizCode: "A006", type: "转移登记", acceptBy: '孙就', acceptDate: "2019-03-06", curNode: "任务处理", flowRate: 10 },
  { reBizCode: "A007", type: "抵押登记", acceptBy: '周晕', acceptDate: "2019-04-13", curNode: "部门审核", flowRate: 24 },
  { reBizCode: "A008", type: "抵押登记", acceptBy: '吴有', acceptDate: "2019-05-09", curNode: "部门审核", flowRate: 30 },
  { reBizCode: "A009", type: "抵押登记", acceptBy: '郑武', acceptDate: "2019-07-12", curNode: "任务分派", flowRate: 1 },
  { reBizCode: "A0010", type: "抵押登记", acceptBy: '林爽', acceptDate: "2019-12-12", curNode: "部门审核", flowRate: 16 },
  { reBizCode: "A0011", type: "转移登记", acceptBy: '码楼', acceptDate: "2019-09-10", curNode: "部门审核", flowRate: 7 },
]
  export default {
    name: "IndexBdc",
    components: {
      ATooltip,
      ACol,
      ChartCard,
      MiniArea,
      MiniBar,
      DashChartDemo,
      BarMultid,
      IndexBar
    },
    data() {
      return {
        loading: true,
        cardCount:{
          sll:100,
          bjl:87,
          isll:15,
          ibjl:9
export default {
  name: "IndexBdc",
  components: {
    ATooltip,
    ACol,
    ChartCard,
    MiniArea,
    MiniBar,
    DashChartDemo,
    BarMultid,
    IndexBar
  },
  data() {
    return {
      loading: true,
      cardCount: {
        sll: 100,
        bjl: 87,
        isll: 15,
        ibjl: 9
      },
      todaySll: 60,
      todayBjl: 54,
      todayISll: 13,
      todayIBjl: 7,
      chartData: {
        sll: [],
        bjl: [],
        isll: [],
        ibjl: []
      },
      jhjgFields,
      jhjgData,
      xljgData,
      xljgFields,
      diskInfo: [
        { name: "C盘", restPPT: 7 },
        { name: "D盘", restPPT: 5 }
      ],
      registerTypeList: [{
        text: "业务受理"
      }, {
        text: "业务管理"
      }, {
        text: "文件管理"
      }, {
        text: "信息查询"
      }],
      dataSource1: [],
      dataSource2: [],
      columns: dataCol1,
      columns2: dataCol2,
      ipagination1: {
        current: 1,
        pageSize: 5,
        pageSizeOptions: ['10', '20', '30'],
        showTotal: (total, range) => {
          return range[0] + "-" + range[1] + " å…±" + total + "条"
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0,
        todaySll:60,
        todayBjl:54,
        todayISll:13,
        todayIBjl:7,
        chartData:{
          sll:[],
          bjl:[],
          isll:[],
          ibjl:[]
      },
      ipagination2: {
        current: 1,
        pageSize: 5,
        pageSizeOptions: ['10', '20', '30'],
        showTotal: (total, range) => {
          return range[0] + "-" + range[1] + " å…±" + total + "条"
        },
        jhjgFields,
        jhjgData,
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0,
      },
      indexRegisterType: "转移登记",
      indexBottomTab: "1"
        xljgData,
        xljgFields,
        diskInfo:[
          {name:"C盘",restPPT:7},
          {name:"D盘",restPPT:5}
        ],
        registerTypeList:[{
          text:"业务受理"
        },{
          text:"业务管理"
        },{
          text:"文件管理"
        },{
          text:"信息查询"
        }],
        dataSource1:[],
        dataSource2:[],
        columns:dataCol1,
        columns2:dataCol2,
        ipagination1:{
          current: 1,
          pageSize: 5,
          pageSizeOptions: ['10', '20', '30'],
          showTotal: (total, range) => {
            return range[0] + "-" + range[1] + " å…±" + total + "条"
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0,
        },
        ipagination2:{
          current: 1,
          pageSize: 5,
          pageSizeOptions: ['10', '20', '30'],
          showTotal: (total, range) => {
            return range[0] + "-" + range[1] + " å…±" + total + "条"
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0,
        },
        indexRegisterType:"转移登记",
        indexBottomTab:"1"
      }
    },
    methods:{
      goPage(){
        this.$message.success("根据业务自行处理跳转页面!")
      },
      changeRegisterType(e){
        this.indexRegisterType = e.target.value
        if(this.indexBottomTab=="1"){
          this.loadDataSource1()
        }else{
          this.loadDataSource2()
        }
      },
      tableChange1(pagination){
        this.ipagination1.current = pagination.current
        this.ipagination1.pageSize = pagination.pageSize
        this.queryTimeoutInfo()
      },
      tableChange2(pagination){
        this.ipagination2.current = pagination.current
        this.ipagination2.pageSize = pagination.pageSize
        this.queryNodeTimeoutInfo()
      },
      getFlowRateNumber(value){
        return Number(value)
      },
      getPercentFormat(value){
        if(value==100){
          return "超时"
        }else{
          return value+"%"
        }
      },
      getPercentColor(value){
        let p = Number(value)
        if(p>=90 && p<100){
          return 'rgb(244, 240, 89)'
        }else if(p>=100){
          return 'red'
        }else{
          return 'rgb(16, 142, 233)'
        }
      },
      loadDataSource1(){
        this.dataSource1 = dataSource1.filter(item=>{
          if(!this.indexRegisterType){
            return true
          }
          return item.type==this.indexRegisterType
        })
      },
      loadDataSource2(){
        this.dataSource2 = dataSource2.filter(item=>{
          if(!this.indexRegisterType){
            return true
          }
          return item.type==this.indexRegisterType
        })
      }
    },
    created() {
      this.loadDataSource1()
      this.loadDataSource2()
      setTimeout(() => {
        this.loading = !this.loading
      }, 1000)
    }
  },
  methods: {
    goPage() {
      this.$message.success("根据业务自行处理跳转页面!")
    },
    changeRegisterType(e) {
      this.indexRegisterType = e.target.value
      if (this.indexBottomTab == "1") {
        this.loadDataSource1()
      } else {
        this.loadDataSource2()
      }
    },
    tableChange1(pagination) {
      this.ipagination1.current = pagination.current
      this.ipagination1.pageSize = pagination.pageSize
      this.queryTimeoutInfo()
    },
    tableChange2(pagination) {
      this.ipagination2.current = pagination.current
      this.ipagination2.pageSize = pagination.pageSize
      this.queryNodeTimeoutInfo()
    },
    getFlowRateNumber(value) {
      return Number(value)
    },
    getPercentFormat(value) {
      if (value == 100) {
        return "超时"
      } else {
        return value + "%"
      }
    },
    getPercentColor(value) {
      let p = Number(value)
      if (p >= 90 && p < 100) {
        return 'rgb(244, 240, 89)'
      } else if (p >= 100) {
        return 'red'
      } else {
        return 'rgb(16, 142, 233)'
      }
    },
    loadDataSource1() {
      this.dataSource1 = dataSource1.filter(item => {
        if (!this.indexRegisterType) {
          return true
        }
        return item.type == this.indexRegisterType
      })
    },
    loadDataSource2() {
      this.dataSource2 = dataSource2.filter(item => {
        if (!this.indexRegisterType) {
          return true
        }
        return item.type == this.indexRegisterType
      })
    }
  },
  created() {
    this.loadDataSource1()
    this.loadDataSource2()
    setTimeout(() => {
      this.loading = !this.loading
    }, 1000)
  }
}
</script>
<style lang="less" scoped>
  .extra-wrapper {
    line-height: 55px;
    padding-right: 24px;
.extra-wrapper {
  line-height: 55px;
  padding-right: 24px;
    .extra-item {
      display: inline-block;
      margin-right: 24px;
      a {
        margin-left: 24px;
      }
    }
  }
  .item-group {
    padding: 20px 0 8px 24px;
    font-size: 0;
    a {
      color: rgba(0, 0, 0, 0.65);
      display: inline-block;
      font-size: 14px;
      margin-bottom: 13px;
      width: 25%;
    }
  }
  .item-group {
    .more-btn {
      margin-bottom: 13px;
      text-align: center;
    }
  }
  .list-content-item {
    color: rgba(0, 0, 0, .45);
  .extra-item {
    display: inline-block;
    vertical-align: middle;
    margin-right: 24px;
    a {
      margin-left: 24px;
    }
  }
}
.item-group {
  padding: 20px 0 8px 24px;
  font-size: 0;
  a {
    color: rgba(0, 0, 0, 0.65);
    display: inline-block;
    font-size: 14px;
    margin-left: 40px;
    margin-bottom: 13px;
    width: 25%;
  }
}
  @media only screen and (min-width: 1600px) {
    .list-content-item{
      margin-left:60px;
    }
.item-group {
  .more-btn {
    margin-bottom: 13px;
    text-align: center;
  }
}
  @media only screen and (max-width: 1300px) {
    .list-content-item{
      margin-left:20px;
    }
    .width-hidden4{
      display:none
    }
  }
  .list-content-item{
    span{line-height: 20px;}
  }
  .list-content-item{
    p{margin-top: 4px;margin-bottom:0;line-height:22px;}
  }
  .anty-list-cust {
    .ant-list-item-meta{flex: 0.3 !important;}
  }
  .anty-list-cust {
    .ant-list-item-content{flex:1 !important; justify-content:flex-start !important;margin-left: 20px;}
  }
.list-content-item {
  color: rgba(0, 0, 0, 0.45);
  display: inline-block;
  vertical-align: middle;
  font-size: 14px;
  margin-left: 40px;
}
@media only screen and (min-width: 1600px) {
  .list-content-item {
    margin-left: 60px;
  }
}
@media only screen and (max-width: 1300px) {
  .list-content-item {
    margin-left: 20px;
  }
  .width-hidden4 {
    display: none;
  }
}
.list-content-item {
  span {
    line-height: 20px;
  }
}
.list-content-item {
  p {
    margin-top: 4px;
    margin-bottom: 0;
    line-height: 22px;
  }
}
.anty-list-cust {
  .ant-list-item-meta {
    flex: 0.3 !important;
  }
}
.anty-list-cust {
  .ant-list-item-content {
    flex: 1 !important;
    justify-content: flex-start !important;
    margin-left: 20px;
  }
}
</style>
src/views/dashboard/IndexChart.vue
@@ -1,134 +1,276 @@
<template>
  <div class="page-header-index-wide">
    <!--<a-row :gutter="24">-->
      <!--<a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">-->
        <!--<chart-card :loading="loading" title="总销售额" total="ï¿¥126,560">-->
          <!--<a-tooltip title="指标说明" slot="action">-->
            <!--<a-icon type="info-circle-o" />-->
          <!--</a-tooltip>-->
          <!--<div>-->
            <!--<trend flag="up" style="margin-right: 16px;">-->
              <!--<span slot="term">周同比</span>-->
              <!--12%-->
            <!--</trend>-->
            <!--<trend flag="down">-->
              <!--<span slot="term">日同比</span>-->
              <!--11%-->
            <!--</trend>-->
          <!--</div>-->
          <!--<template slot="footer">日均销售额<span>ï¿¥ 234.56</span></template>-->
        <!--</chart-card>-->
      <!--</a-col>-->
      <!--<a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">-->
        <!--<chart-card :loading="loading" title="订单量" :total="8846 | NumberFormat">-->
          <!--<a-tooltip title="指标说明" slot="action">-->
            <!--<a-icon type="info-circle-o" />-->
          <!--</a-tooltip>-->
          <!--<div>-->
            <!--<mini-area />-->
          <!--</div>-->
          <!--<template slot="footer">日订单量<span> {{ '1234' | NumberFormat }}</span></template>-->
        <!--</chart-card>-->
      <!--</a-col>-->
      <!--<a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">-->
        <!--<chart-card :loading="loading" title="支付笔数" :total="6560 | NumberFormat">-->
          <!--<a-tooltip title="指标说明" slot="action">-->
            <!--<a-icon type="info-circle-o" />-->
          <!--</a-tooltip>-->
          <!--<div>-->
            <!--<mini-bar :height="40" />-->
          <!--</div>-->
          <!--<template slot="footer">转化率 <span>60%</span></template>-->
        <!--</chart-card>-->
      <!--</a-col>-->
      <!--<a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }">-->
        <!--<chart-card :loading="loading" title="运营活动效果" total="78%">-->
          <!--<a-tooltip title="指标说明" slot="action">-->
            <!--<a-icon type="info-circle-o" />-->
          <!--</a-tooltip>-->
          <!--<div>-->
            <!--<mini-progress color="rgb(19, 194, 194)" :target="80" :percentage="78" :height="8" />-->
          <!--</div>-->
          <!--<template slot="footer">-->
            <!--<trend flag="down" style="margin-right: 16px;">-->
              <!--<span slot="term">同周比</span>-->
              <!--12%-->
            <!--</trend>-->
            <!--<trend flag="up">-->
              <!--<span slot="term">日环比</span>-->
              <!--80%-->
            <!--</trend>-->
          <!--</template>-->
        <!--</chart-card>-->
      <!--</a-col>-->
    <!--</a-row>-->
    <a-row :gutter="24">
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="总销售额"
          total="ï¿¥126,560"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <trend
              flag="up"
              style="margin-right: 16px;"
            >
              <span slot="term">周同比</span>
              12%
            </trend>
            <trend flag="down">
              <span slot="term">日同比</span>
              11%
            </trend>
          </div>
          <template slot="footer">日均销售额<span>ï¿¥ 234.56</span></template>
        </chart-card>
      </a-col>
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="订单量"
          :total="8846 | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-area />
          </div>
          <template slot="footer">日订单量<span> {{ '1234' | NumberFormat }}</span></template>
        </chart-card>
      </a-col>
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="支付笔数"
          :total="6560 | NumberFormat"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-bar :height="40" />
          </div>
          <template slot="footer">转化率 <span>60%</span></template>
        </chart-card>
      </a-col>
      <a-col
        :sm="24"
        :md="12"
        :xl="6"
        :style="{ marginBottom: '24px' }"
      >
        <chart-card
          :loading="loading"
          title="运营活动效果"
          total="78%"
        >
          <a-tooltip
            title="指标说明"
            slot="action"
          >
            <a-icon type="info-circle-o" />
          </a-tooltip>
          <div>
            <mini-progress
              color="rgb(19, 194, 194)"
              :target="80"
              :percentage="78"
              :height="8"
            />
          </div>
          <template slot="footer">
            <trend
              flag="down"
              style="margin-right: 16px;"
            >
              <span slot="term">同周比</span>
              12%
            </trend>
            <trend flag="up">
              <span slot="term">日环比</span>
              80%
            </trend>
          </template>
        </chart-card>
      </a-col>
    </a-row>
    <!--<a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}">-->
      <!--<div class="salesCard">-->
        <!--<a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}">-->
          <!--<div class="extra-wrapper" slot="tabBarExtraContent">-->
            <!--<div class="extra-item">-->
              <!--<a>今日</a>-->
              <!--<a>本周</a>-->
              <!--<a>本月</a>-->
              <!--<a>本年</a>-->
            <!--</div>-->
            <!--<a-range-picker :style="{width: '256px'}" />-->
          <!--</div>-->
          <!--<a-tab-pane loading="true" tab="销售额" key="1">-->
            <!--<a-row>-->
              <!--<a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">-->
                <!--<bar title="销售额排行" :dataSource="barData"/>-->
              <!--</a-col>-->
              <!--<a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">-->
                <!--<rank-list title="门店销售排行榜" :list="rankList"/>-->
              <!--</a-col>-->
            <!--</a-row>-->
          <!--</a-tab-pane>-->
          <!--<a-tab-pane tab="销售趋势" key="2">-->
            <!--<a-row>-->
              <!--<a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">-->
                <!--<bar title="销售额趋势" :dataSource="barData"/>-->
              <!--</a-col>-->
              <!--<a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24">-->
                <!--<rank-list title="门店销售排行榜" :list="rankList"/>-->
              <!--</a-col>-->
            <!--</a-row>-->
          <!--</a-tab-pane>-->
        <!--</a-tabs>-->
      <!--</div>-->
    <!--</a-card>-->
    <a-card
      :loading="loading"
      :bordered="false"
      :body-style="{padding: '0'}"
    >
      <div class="salesCard">
        <a-tabs
          default-active-key="1"
          size="large"
          :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}"
        >
          <div
            class="extra-wrapper"
            slot="tabBarExtraContent"
          >
            <div class="extra-item">
              <a>今日</a>
              <a>本周</a>
              <a>本月</a>
              <a>本年</a>
            </div>
            <a-range-picker :style="{width: '256px'}" />
          </div>
          <a-tab-pane
            loading="true"
            tab="销售额"
            key="1"
          >
            <a-row>
              <a-col
                :xl="16"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <bar
                  title="销售额排行"
                  :dataSource="barData"
                />
              </a-col>
              <a-col
                :xl="8"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <rank-list
                  title="门店销售排行榜"
                  :list="rankList"
                />
              </a-col>
            </a-row>
          </a-tab-pane>
          <a-tab-pane
            tab="销售趋势"
            key="2"
          >
            <a-row>
              <a-col
                :xl="16"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <bar
                  title="销售额趋势"
                  :dataSource="barData"
                />
              </a-col>
              <a-col
                :xl="8"
                :lg="12"
                :md="12"
                :sm="24"
                :xs="24"
              >
                <rank-list
                  title="门店销售排行榜"
                  :list="rankList"
                />
              </a-col>
            </a-row>
          </a-tab-pane>
        </a-tabs>
      </div>
    </a-card>
    <a-row>
      <a-col :span="24">
        <a-card :loading="loading" :bordered="false" title="最近一周访问量统计" :style="{ marginTop: '24px' }">
        <a-card
          :loading="loading"
          :bordered="false"
          title="最近一周访问量统计"
          :style="{ marginTop: '24px' }"
        >
          <a-row>
            <a-col :span="6">
              <head-info title="今日IP" :content="loginfo.todayIp"></head-info>
              <head-info
                title="今日IP"
                :content="loginfo.todayIp"
              ></head-info>
            </a-col>
            <a-col :span="2">
              <a-spin class='circle-cust'>
                <a-icon slot="indicator" type="environment" style="font-size: 24px"  />
                <a-icon
                  slot="indicator"
                  type="environment"
                  style="font-size: 24px"
                />
              </a-spin>
            </a-col>
            <a-col :span="6">
              <head-info title="今日访问" :content="loginfo.todayVisitCount"></head-info>
              <head-info
                title="今日访问"
                :content="loginfo.todayVisitCount"
              ></head-info>
            </a-col>
            <a-col :span="2">
              <a-spin class='circle-cust'>
                <a-icon slot="indicator" type="team" style="font-size: 24px"  />
                <a-icon
                  slot="indicator"
                  type="team"
                  style="font-size: 24px"
                />
              </a-spin>
            </a-col>
            <a-col :span="6">
              <head-info title="总访问量" :content="loginfo.totalVisitCount"></head-info>
              <head-info
                title="总访问量"
                :content="loginfo.totalVisitCount"
              ></head-info>
            </a-col>
            <a-col :span="2">
              <a-spin class='circle-cust'>
                <a-icon slot="indicator" type="rise" style="font-size: 24px"  />
                <a-icon
                  slot="indicator"
                  type="rise"
                  style="font-size: 24px"
                />
              </a-spin>
            </a-col>
          </a-row>
          <line-chart-multid :fields="visitFields" :dataSource="visitInfo"></line-chart-multid>
          <line-chart-multid
            :fields="visitFields"
            :dataSource="visitInfo"
          ></line-chart-multid>
        </a-card>
      </a-col>
    </a-row>
@@ -136,133 +278,133 @@
</template>
<script>
  import ChartCard from '@/components/ChartCard'
  import ACol from "ant-design-vue/es/grid/Col"
  import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
  import MiniArea from '@/components/chart/MiniArea'
  import MiniBar from '@/components/chart/MiniBar'
  import MiniProgress from '@/components/chart/MiniProgress'
  import RankList from '@/components/chart/RankList'
  import Bar from '@/components/chart/Bar'
  import LineChartMultid from '@/components/chart/LineChartMultid'
  import HeadInfo from '@/components/tools/HeadInfo.vue'
import ChartCard from '@/components/ChartCard'
import ACol from "ant-design-vue/es/grid/Col"
import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
import MiniArea from '@/components/chart/MiniArea'
import MiniBar from '@/components/chart/MiniBar'
import MiniProgress from '@/components/chart/MiniProgress'
import RankList from '@/components/chart/RankList'
import Bar from '@/components/chart/Bar'
import LineChartMultid from '@/components/chart/LineChartMultid'
import HeadInfo from '@/components/tools/HeadInfo.vue'
  import Trend from '@/components/Trend'
  import { getLoginfo,getVisitInfo } from '@/api/api'
import Trend from '@/components/Trend'
import { getLoginfo, getVisitInfo } from '@/api/api'
  const rankList = []
  for (let i = 0; i < 7; i++) {
    rankList.push({
      name: '白鹭岛 ' + (i+1) + ' å·åº—',
      total: 1234.56 - i * 100
    })
  }
  const barData = []
  for (let i = 0; i < 12; i += 1) {
    barData.push({
      x: `${i + 1}月`,
      y: Math.floor(Math.random() * 1000) + 200
    })
  }
  export default {
    name: "IndexChart",
    components: {
      ATooltip,
      ACol,
      ChartCard,
      MiniArea,
      MiniBar,
      MiniProgress,
      RankList,
      Bar,
      Trend,
      LineChartMultid,
      HeadInfo
    },
    data() {
      return {
        loading: true,
        center: null,
        rankList,
        barData,
        loginfo:{},
        visitFields:['ip','visit'],
        visitInfo:[],
        indicator: <a-icon type="loading" style="font-size: 24px" spin />
      }
    },
    created() {
      setTimeout(() => {
        this.loading = !this.loading
      }, 1000)
      this.initLogInfo();
    },
    methods: {
      initLogInfo () {
        getLoginfo(null).then((res)=>{
          if(res.success){
            Object.keys(res.result).forEach(key=>{
              res.result[key] =res.result[key]+""
            })
            this.loginfo = res.result;
          }
        })
        getVisitInfo().then(res=>{
          if(res.success){
             this.visitInfo = res.result;
           }
         })
      },
const rankList = []
for (let i = 0; i < 7; i++) {
  rankList.push({
    name: '白鹭岛 ' + (i + 1) + ' å·åº—',
    total: 1234.56 - i * 100
  })
}
const barData = []
for (let i = 0; i < 12; i += 1) {
  barData.push({
    x: `${i + 1}月`,
    y: Math.floor(Math.random() * 1000) + 200
  })
}
export default {
  name: "IndexChart",
  components: {
    ATooltip,
    ACol,
    ChartCard,
    MiniArea,
    MiniBar,
    MiniProgress,
    RankList,
    Bar,
    Trend,
    LineChartMultid,
    HeadInfo
  },
  data() {
    return {
      loading: true,
      center: null,
      rankList,
      barData,
      loginfo: {},
      visitFields: ['ip', 'visit'],
      visitInfo: [],
      indicator: <a-icon type="loading" style="font-size: 24px" spin />
    }
  },
  created() {
    setTimeout(() => {
      this.loading = !this.loading
    }, 1000)
    this.initLogInfo();
  },
  methods: {
    initLogInfo() {
      getLoginfo(null).then((res) => {
        if (res.success) {
          Object.keys(res.result).forEach(key => {
            res.result[key] = res.result[key] + ""
          })
          this.loginfo = res.result;
        }
      })
      getVisitInfo().then(res => {
        if (res.success) {
          this.visitInfo = res.result;
        }
      })
    },
  }
}
</script>
<style lang="less" scoped>
  .circle-cust{
    position: relative;
    top: 28px;
    left: -100%;
  }
  .extra-wrapper {
    line-height: 55px;
    padding-right: 24px;
.circle-cust {
  position: relative;
  top: 28px;
  left: -100%;
}
.extra-wrapper {
  line-height: 55px;
  padding-right: 24px;
    .extra-item {
      display: inline-block;
      margin-right: 24px;
  .extra-item {
    display: inline-block;
    margin-right: 24px;
      a {
        margin-left: 24px;
      }
    a {
      margin-left: 24px;
    }
  }
}
  /* é¦–页访问量统计 */
  .head-info {
    position: relative;
    text-align: left;
    padding: 0 32px 0 0;
    min-width: 125px;
/* é¦–页访问量统计 */
.head-info {
  position: relative;
  text-align: left;
  padding: 0 32px 0 0;
  min-width: 125px;
    &.center {
      text-align: center;
      padding: 0 32px;
    }
  &.center {
    text-align: center;
    padding: 0 32px;
  }
    span {
      color: rgba(0, 0, 0, .45);
      display: inline-block;
      font-size: .95rem;
      line-height: 42px;
      margin-bottom: 4px;
    }
    p {
      line-height: 42px;
      margin: 0;
      a {
        font-weight: 600;
        font-size: 1rem;
      }
  span {
    color: rgba(0, 0, 0, 0.45);
    display: inline-block;
    font-size: 0.95rem;
    line-height: 42px;
    margin-bottom: 4px;
  }
  p {
    line-height: 42px;
    margin: 0;
    a {
      font-weight: 600;
      font-size: 1rem;
    }
  }
}
</style>
src/views/dashboard/IndexTask.vue
@@ -1,15 +1,29 @@
<template>
  <div class="index-container-ty">
    <a-spin :spinning="loading">
      <a-row type="flex" justify="start" :gutter="3">
        <a-col :sm="24" :lg="12">
      <a-row
        type="flex"
        justify="start"
        :gutter="3"
      >
        <a-col
          :sm="24"
          :lg="12"
        >
          <a-card>
            <div slot="title" class="index-md-title">
              <img src="../../assets/daiban.png"/>
            <div
              slot="title"
              class="index-md-title"
            >
              <img src="../../assets/daiban.png" />
              æˆ‘的待办【{{ dataSource1.length }}】
            </div>
            <div slot="extra">
              <a v-if="dataSource1 && dataSource1.length>0" slot="footer" @click="goPage">更多 <a-icon type="double-right" /></a>
              <a
                v-if="dataSource1 && dataSource1.length>0"
                slot="footer"
                @click="goPage"
              >更多 <a-icon type="double-right" /></a>
            </div>
            <a-table
              :class="'my-index-table tytable1'"
@@ -18,16 +32,34 @@
              rowKey="id"
              :columns="columns"
              :dataSource="dataSource1"
              :pagination="false">
              <template slot="ellipsisText" slot-scope="text">
                <j-ellipsis :value="text" :length="textMaxLength"></j-ellipsis>
              :pagination="false"
            >
              <template
                slot="ellipsisText"
                slot-scope="text"
              >
                <j-ellipsis
                  :value="text"
                  :length="textMaxLength"
                ></j-ellipsis>
              </template>
              <template slot="dayWarnning" slot-scope="text,record">
                <a-icon type="bulb" theme="twoTone" style="font-size:22px" :twoToneColor="getTipColor(record)"/>
              <template
                slot="dayWarnning"
                slot-scope="text,record"
              >
                <a-icon
                  type="bulb"
                  theme="twoTone"
                  style="font-size:22px"
                  :twoToneColor="getTipColor(record)"
                />
              </template>
              <span slot="action" slot-scope="text, record">
              <span
                slot="action"
                slot-scope="text, record"
              >
                <a @click="handleData">办理</a>
              </span>
@@ -35,14 +67,24 @@
          </a-card>
        </a-col>
        <a-col :sm="24" :lg="12">
        <a-col
          :sm="24"
          :lg="12"
        >
          <a-card>
            <div slot="title" class="index-md-title">
              <img src="../../assets/zaiban.png"/>
            <div
              slot="title"
              class="index-md-title"
            >
              <img src="../../assets/zaiban.png" />
              æˆ‘的在办【{{ dataSource2.length }}】
            </div>
            <div slot="extra">
              <a v-if="dataSource2 && dataSource2.length>0" slot="footer" @click="goPage">更多 <a-icon type="double-right" /></a>
              <a
                v-if="dataSource2 && dataSource2.length>0"
                slot="footer"
                @click="goPage"
              >更多 <a-icon type="double-right" /></a>
            </div>
            <a-table
              :class="'my-index-table tytable2'"
@@ -51,16 +93,34 @@
              rowKey="id"
              :columns="columns"
              :dataSource="dataSource2"
              :pagination="false">
              <template slot="ellipsisText" slot-scope="text">
                <j-ellipsis :value="text" :length="textMaxLength"></j-ellipsis>
              :pagination="false"
            >
              <template
                slot="ellipsisText"
                slot-scope="text"
              >
                <j-ellipsis
                  :value="text"
                  :length="textMaxLength"
                ></j-ellipsis>
              </template>
              <template slot="dayWarnning" slot-scope="text,record">
                <a-icon type="bulb" theme="twoTone" style="font-size:22px" :twoToneColor="getTipColor(record)"/>
              <template
                slot="dayWarnning"
                slot-scope="text,record"
              >
                <a-icon
                  type="bulb"
                  theme="twoTone"
                  style="font-size:22px"
                  :twoToneColor="getTipColor(record)"
                />
              </template>
              <span slot="action" slot-scope="text, record">
              <span
                slot="action"
                slot-scope="text, record"
              >
                <a @click="handleData">办理</a>
              </span>
@@ -72,10 +132,16 @@
          <div style="height: 5px;"></div>
        </a-col>
        <a-col :sm="24" :lg="12">
        <a-col
          :sm="24"
          :lg="12"
        >
          <a-card>
            <div slot="title" class="index-md-title">
              <img src="../../assets/guaz.png"/>
            <div
              slot="title"
              class="index-md-title"
            >
              <img src="../../assets/guaz.png" />
              æˆ‘的挂账【{{ dataSource4.length }}】
            </div>
            <a-table
@@ -85,16 +151,34 @@
              rowKey="id"
              :columns="columns"
              :dataSource="dataSource4"
              :pagination="false">
              <template slot="ellipsisText" slot-scope="text">
                <j-ellipsis :value="text" :length="textMaxLength"></j-ellipsis>
              :pagination="false"
            >
              <template
                slot="ellipsisText"
                slot-scope="text"
              >
                <j-ellipsis
                  :value="text"
                  :length="textMaxLength"
                ></j-ellipsis>
              </template>
              <template slot="dayWarnning" slot-scope="text,record">
                <a-icon type="bulb" theme="twoTone" style="font-size:22px" :twoToneColor="getTipColor(record)"/>
              <template
                slot="dayWarnning"
                slot-scope="text,record"
              >
                <a-icon
                  type="bulb"
                  theme="twoTone"
                  style="font-size:22px"
                  :twoToneColor="getTipColor(record)"
                />
              </template>
              <span slot="action" slot-scope="text, record">
              <span
                slot="action"
                slot-scope="text, record"
              >
                <a @click="handleData">办理</a>
              </span>
@@ -102,10 +186,16 @@
          </a-card>
        </a-col>
        <a-col :sm="24" :lg="12">
        <a-col
          :sm="24"
          :lg="12"
        >
          <a-card>
            <div slot="title" class="index-md-title">
              <img src="../../assets/duban.png"/>
            <div
              slot="title"
              class="index-md-title"
            >
              <img src="../../assets/duban.png" />
              æˆ‘的督办【{{ dataSource3.length }}】
            </div>
            <a-table
@@ -115,16 +205,34 @@
              rowKey="id"
              :columns="columns"
              :dataSource="dataSource3"
              :pagination="false">
              <template slot="ellipsisText" slot-scope="text">
                <j-ellipsis :value="text" :length="textMaxLength"></j-ellipsis>
              :pagination="false"
            >
              <template
                slot="ellipsisText"
                slot-scope="text"
              >
                <j-ellipsis
                  :value="text"
                  :length="textMaxLength"
                ></j-ellipsis>
              </template>
              <template slot="dayWarnning" slot-scope="text,record">
                <a-icon type="bulb" theme="twoTone" style="font-size:22px" :twoToneColor="getTipColor(record)"/>
              <template
                slot="dayWarnning"
                slot-scope="text,record"
              >
                <a-icon
                  type="bulb"
                  theme="twoTone"
                  style="font-size:22px"
                  :twoToneColor="getTipColor(record)"
                />
              </template>
              <span slot="action" slot-scope="text, record">
              <span
                slot="action"
                slot-scope="text, record"
              >
                <a @click="handleData">办理</a>
              </span>
@@ -139,234 +247,279 @@
</template>
<script>
  import noDataPng from '@/assets/nodata.png'
  import JEllipsis from '@/components/jeecg/JEllipsis'
import noDataPng from '@/assets/nodata.png'
import JEllipsis from '@/components/jeecg/JEllipsis'
  const tempSs1=[{
    id:"001",
    orderNo:"电[1]1267102",
    orderTitle:"药品出问题了",
    restDay:1
  },{
    id:"002",
    orderNo:"电[4]5967102",
    orderTitle:"吃了xxx医院的药,病情越来越严重",
    restDay:0
  },{
    id:"003",
    orderNo:"电[3]5988987",
    orderTitle:"今天去超市买鸡蛋,鸡蛋都是坏的",
    restDay:7
  },{
    id:"004",
    orderNo:"电[2]5213491",
    orderTitle:"xx宝实体店高价售卖xx",
    restDay:5
  },{
    id:"005",
    orderNo:"电[1]1603491",
    orderTitle:"以红利相诱,答应退保后扣一年费用",
    restDay:0
  }]
const tempSs1 = [{
  id: "001",
  orderNo: "电[1]1267102",
  orderTitle: "药品出问题了",
  restDay: 1
}, {
  id: "002",
  orderNo: "电[4]5967102",
  orderTitle: "吃了xxx医院的药,病情越来越严重",
  restDay: 0
}, {
  id: "003",
  orderNo: "电[3]5988987",
  orderTitle: "今天去超市买鸡蛋,鸡蛋都是坏的",
  restDay: 7
}, {
  id: "004",
  orderNo: "电[2]5213491",
  orderTitle: "xx宝实体店高价售卖xx",
  restDay: 5
}, {
  id: "005",
  orderNo: "电[1]1603491",
  orderTitle: "以红利相诱,答应退保后扣一年费用",
  restDay: 0
}]
  const tempSs2=[{
    id:"001",
    orderTitle:"我要投诉这个大超市",
    orderNo:"电[1]10299456",
    restDay:6
  },{
    id:"002",
    orderTitle:"xxx医院乱开药方,售卖假药",
    orderNo:"电[2]20235691",
    restDay:0
  },{
    id:"003",
    orderTitle:"我想问问这家店是干啥的",
    orderNo:"电[3]495867322",
    restDay:7
  },{
    id:"004",
    orderTitle:"我要举报朝阳区奥森公园酒店",
    orderNo:"电[2]1193849",
    restDay:3
  },{
    id:"005",
    orderTitle:"我今天吃饭吃到一个石头子",
    orderNo:"电[4]56782344",
    restDay:9
  }]
const tempSs2 = [{
  id: "001",
  orderTitle: "我要投诉这个大超市",
  orderNo: "电[1]10299456",
  restDay: 6
}, {
  id: "002",
  orderTitle: "xxx医院乱开药方,售卖假药",
  orderNo: "电[2]20235691",
  restDay: 0
}, {
  id: "003",
  orderTitle: "我想问问这家店是干啥的",
  orderNo: "电[3]495867322",
  restDay: 7
}, {
  id: "004",
  orderTitle: "我要举报朝阳区奥森公园酒店",
  orderNo: "电[2]1193849",
  restDay: 3
}, {
  id: "005",
  orderTitle: "我今天吃饭吃到一个石头子",
  orderNo: "电[4]56782344",
  restDay: 9
}]
  //4-7天
  const tip_green = "rgba(0, 255, 0, 1)"
  //1-3天
  const tip_yellow = "rgba(255, 255, 0, 1)"
  //超期
  const tip_red = "rgba(255, 0, 0, 1)"
//4-7天
const tip_green = "rgba(0, 255, 0, 1)"
//1-3天
const tip_yellow = "rgba(255, 255, 0, 1)"
//超期
const tip_red = "rgba(255, 0, 0, 1)"
  export default {
    name: "IndexTask",
    components:{ JEllipsis },
    data() {
      return {
        loading:false,
        textMaxLength:8,
        dataSource1:[],
        dataSource2:[],
        dataSource3:[],
        dataSource4:[],
        columns: [
          {
            title: '',
            dataIndex: '',
            key:'rowIndex',
            width:50,
            fixed:'left',
            align:"center",
            scopedSlots: {customRender: "dayWarnning"}
          },
          {
            title:'剩余天数',
            align:"center",
            dataIndex: 'restDay',
            width:80
          },
          {
            title:'工单标题',
            align:"center",
            dataIndex: 'orderTitle',
            scopedSlots: {customRender: "ellipsisText"}
          },
          {
            title:'工单编号',
            align:"center",
            dataIndex: 'orderNo',
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' }
          }
        ]
      }
    },
    created() {
      this.mock();
    },
    mounted(){
    },
    methods: {
      getTipColor(rd){
        let num = rd.restDay
        if(num<=0){
          return tip_red
        }else if(num>=1 && num<4){
          return tip_yellow
        }else if(num>=4){
          return tip_green
export default {
  name: "IndexTask",
  components: { JEllipsis },
  data() {
    return {
      loading: false,
      textMaxLength: 8,
      dataSource1: [],
      dataSource2: [],
      dataSource3: [],
      dataSource4: [],
      columns: [
        {
          title: '',
          dataIndex: '',
          key: 'rowIndex',
          width: 50,
          fixed: 'left',
          align: "center",
          scopedSlots: { customRender: "dayWarnning" }
        },
        {
          title: '剩余天数',
          align: "center",
          dataIndex: 'restDay',
          width: 80
        },
        {
          title: '工单标题',
          align: "center",
          dataIndex: 'orderTitle',
          scopedSlots: { customRender: "ellipsisText" }
        },
        {
          title: '工单编号',
          align: "center",
          dataIndex: 'orderNo',
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: "center",
          scopedSlots: { customRender: 'action' }
        }
      },
      goPage(){
        this.$message.success("请根据具体业务跳转页面")
        //this.$router.push({ path: '/comp/mytask' })
      },
      mock(){
        this.dataSource1=tempSs1
        this.dataSource2=tempSs2
        this.dataSource3=tempSs1
        this.dataSource4=[]
        this.ifNullDataSource(this.dataSource4,'.tytable4')
      },
      ifNullDataSource(ds,tb){
        this.$nextTick(()=>{
          if(!ds || ds.length==0){
            var tmp = document.createElement('img');
            tmp.src=noDataPng
            tmp.width=300
            let tbclass=`${tb} .ant-table-placeholder`
            document.querySelector(tbclass).innerHTML=""
            document.querySelector(tbclass).appendChild(tmp)
          }
        })
      },
      handleData(){
        this.$message.success("办理完成")
      }
      ]
    }
  },
  created() {
    this.mock();
  },
  mounted() {
  },
  methods: {
    getTipColor(rd) {
      let num = rd.restDay
      if (num <= 0) {
        return tip_red
      } else if (num >= 1 && num < 4) {
        return tip_yellow
      } else if (num >= 4) {
        return tip_green
      }
    },
    goPage() {
      this.$message.success("请根据具体业务跳转页面")
      //this.$router.push({ path: '/comp/mytask' })
    },
    mock() {
      this.dataSource1 = tempSs1
      this.dataSource2 = tempSs2
      this.dataSource3 = tempSs1
      this.dataSource4 = []
      this.ifNullDataSource(this.dataSource4, '.tytable4')
    },
    ifNullDataSource(ds, tb) {
      this.$nextTick(() => {
        if (!ds || ds.length == 0) {
          var tmp = document.createElement('img');
          tmp.src = noDataPng
          tmp.width = 300
          let tbclass = `${tb} .ant-table-placeholder`
          document.querySelector(tbclass).innerHTML = ""
          document.querySelector(tbclass).appendChild(tmp)
        }
      })
    },
    handleData() {
      this.$message.success("办理完成")
    }
  }
}
</script>
<style>
  .my-index-table{height:270px}
  .my-index-table table{font-size: 14px !important;}
.my-index-table {
  height: 270px;
}
.my-index-table table {
  font-size: 14px !important;
}
  .index-container-ty .ant-card-head-title{padding-top: 6px;padding-bottom: 6px;}
  .index-container-ty .ant-card-extra{padding:0}
  .index-container-ty .ant-card-extra a{color:#fff}
  .index-container-ty .ant-card-extra a:hover{color:#152ede}
  .index-container-ty .ant-card-head-wrapper,.index-container-ty .ant-card-head{
    line-height:24px;
    min-height:24px;
    /*background: #90aeff;*/
    background: #7196fb;
  }
  .index-container-ty .ant-card-body{padding: 10px 12px 0px 12px}
.index-container-ty .ant-card-head-title {
  padding-top: 6px;
  padding-bottom: 6px;
}
.index-container-ty .ant-card-extra {
  padding: 0;
}
.index-container-ty .ant-card-extra a {
  color: #fff;
}
.index-container-ty .ant-card-extra a:hover {
  color: #152ede;
}
.index-container-ty .ant-card-head-wrapper,
.index-container-ty .ant-card-head {
  line-height: 24px;
  min-height: 24px;
  /*background: #90aeff;*/
  background: #7196fb;
}
.index-container-ty .ant-card-body {
  padding: 10px 12px 0px 12px;
}
  /* .index-container-ty .ant-card-actions{background: #fff}
/* .index-container-ty .ant-card-actions{background: #fff}
   .index-container-ty .ant-card-actions li {margin:2px 0;}
   .index-container-ty .ant-card-actions > li > span{width: 100%}*/
.index-container-ty .ant-table-footer {
  text-align: right;
  padding: 6px 12px 6px 6px;
  background: #fff;
  border-top: 2px solid #f7f1f1;
}
  .index-container-ty .ant-table-footer{text-align: right;padding:6px 12px 6px 6px;background: #fff;border-top: 2px solid #f7f1f1;}
.index-md-title {
  postion: relative;
  padding-left: 24px;
  width: 100%;
  color: #fff;
  font-size: 21px;
  font-family: cursive;
}
.index-md-title img {
  position: absolute;
  height: 32px;
  top: 2px;
  left: 14px;
}
  .index-md-title{
    postion:relative;
    padding-left:24px;
    width: 100%;
    color: #fff;
    font-size: 21px;
    font-family: cursive;
  }
  .index-md-title img{
    position: absolute;
    height:32px;
    top: 2px;
    left:14px;
  }
  .index-container-ty .ant-card-body{
    /*border-left:1px solid #90aeff;
.index-container-ty .ant-card-body {
  /*border-left:1px solid #90aeff;
    /*border-right:1px solid #90aeff;
    border-bottom:1px solid #90aeff;*/
  }
}
.index-container-ty .ant-table-thead > tr > th,
.index-container-ty .ant-table-tbody > tr > td {
  border-bottom: 1px solid #90aeff;
}
  .index-container-ty .ant-table-thead > tr > th,
  .index-container-ty .ant-table-tbody > tr > td{
    border-bottom: 1px solid #90aeff;
  }
.index-container-ty
  .ant-table-small
  > .ant-table-content
  > .ant-table-fixed-left
  > .ant-table-body-outer
  > .ant-table-body-inner
  > table
  > .ant-table-thead
  > tr
  > th,
.index-container-ty
  .ant-table-small
  > .ant-table-content
  > .ant-table-fixed-right
  > .ant-table-body-outer
  > .ant-table-body-inner
  > table
  > .ant-table-thead
  > tr
  > th {
  border-bottom: 1px solid #90aeff;
}
  .index-container-ty .ant-table-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th,
  .index-container-ty .ant-table-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th{
    border-bottom: 1px solid #90aeff;
  }
.index-container-ty
  .ant-table-small
  > .ant-table-content
  > .ant-table-scroll
  > .ant-table-body
  > table
  > .ant-table-thead
  > tr
  > th {
  border-bottom: 1px solid #90aeff;
}
  .index-container-ty  .ant-table-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th{
    border-bottom: 1px solid #90aeff;
  }
.index-container-ty .ant-table-small {
  border: 1px solid #90aeff;
}
  .index-container-ty .ant-table-small{
    border: 1px solid #90aeff;
  }
  .index-container-ty .ant-table-placeholder {
    padding: 0
  }
.index-container-ty .ant-table-placeholder {
  padding: 0;
}
</style>
src/views/dashboard/Monitor.vue
@@ -5,11 +5,10 @@
</template>
<script>
  export default {
    name: "Monitor"
  }
export default {
  name: "Monitor"
}
</script>
<style scoped>
</style>
src/views/dashboard/Workplace.vue
@@ -7,37 +7,74 @@
    <div slot="extra">
      <a-row class="more-info">
        <a-col :span="8">
          <head-info title="项目数" content="56" :center="false" :bordered="false"/>
          <head-info
            title="项目数"
            content="56"
            :center="false"
            :bordered="false"
          />
        </a-col>
        <a-col :span="8">
          <head-info title="团队排名" content="8/24" :center="false" :bordered="false"/>
          <head-info
            title="团队排名"
            content="8/24"
            :center="false"
            :bordered="false"
          />
        </a-col>
        <a-col :span="8">
          <head-info title="项目访问" content="2,223" :center="false" />
          <head-info
            title="项目访问"
            content="2,223"
            :center="false"
          />
        </a-col>
      </a-row>
    </div>
    <div>
      <a-row :gutter="24">
        <a-col :xl="16" :lg="24" :md="24" :sm="24" :xs="24">
        <a-col
          :xl="16"
          :lg="24"
          :md="24"
          :sm="24"
          :xs="24"
        >
          <a-card
            class="project-list"
            :loading="loading"
            style="margin-bottom: 24px;"
            :bordered="false"
            title="进行中的项目"
            :body-style="{ padding: 0 }">
            :body-style="{ padding: 0 }"
          >
            <a slot="extra">全部项目</a>
            <div>
              <a-card-grid class="project-card-grid" :key="i" v-for="(item, i) in projects">
                <a-card :bordered="false" :body-style="{ padding: 0 }">
              <a-card-grid
                class="project-card-grid"
                :key="i"
                v-for="(item, i) in projects"
              >
                <a-card
                  :bordered="false"
                  :body-style="{ padding: 0 }"
                >
                  <a-card-meta>
                    <div slot="title" class="card-title">
                      <a-avatar size="small" :src="item.cover"/>
                    <div
                      slot="title"
                      class="card-title"
                    >
                      <a-avatar
                        size="small"
                        :src="item.cover"
                      />
                      <a>{{ item.title }}</a>
                    </div>
                    <div slot="description" class="card-description">
                    <div
                      slot="description"
                      class="card-description"
                    >
                      {{ item.description }}
                    </div>
                  </a-card-meta>
@@ -50,11 +87,21 @@
            </div>
          </a-card>
          <a-card :loading="loading" title="动态" :bordered="false">
          <a-card
            :loading="loading"
            title="动态"
            :bordered="false"
          >
            <a-list>
              <a-list-item :key="index" v-for="(item, index) in activities">
              <a-list-item
                :key="index"
                v-for="(item, index) in activities"
              >
                <a-list-item-meta>
                  <a-avatar slot="avatar" :src="item.user.avatar" />
                  <a-avatar
                    slot="avatar"
                    :src="item.user.avatar"
                  />
                  <div slot="title">
                    <span>{{ item.user.nickname }}</span>&nbsp;
                    åœ¨&nbsp;<a href="#">{{ item.project.name }}</a>&nbsp;
@@ -73,8 +120,14 @@
          :lg="24"
          :md="24"
          :sm="24"
          :xs="24">
          <a-card title="快速开始 / ä¾¿æ·å¯¼èˆª" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
          :xs="24"
        >
          <a-card
            title="快速开始 / ä¾¿æ·å¯¼èˆª"
            style="margin-bottom: 24px"
            :bordered="false"
            :body-style="{padding: 0}"
          >
            <div class="item-group">
              <a>操作一</a>
              <a>操作二</a>
@@ -82,21 +135,43 @@
              <a>操作四</a>
              <a>操作五</a>
              <a>操作六</a>
              <a-button size="small" type="primary" ghost icon="plus">添加</a-button>
              <a-button
                size="small"
                type="primary"
                ghost
                icon="plus"
              >添加</a-button>
            </div>
          </a-card>
          <a-card title="XX æŒ‡æ•°" style="margin-bottom: 24px" :loading="radarLoading" :bordered="false" :body-style="{ padding: 0 }">
          <a-card
            title="XX æŒ‡æ•°"
            style="margin-bottom: 24px"
            :loading="radarLoading"
            :bordered="false"
            :body-style="{ padding: 0 }"
          >
            <div style="min-height: 400px;">
              <!-- :scale="scale" :axis1Opts="axis1Opts" :axis2Opts="axis2Opts"  -->
              <radar :data="radarData" />
            </div>
          </a-card>
          <a-card :loading="loading" title="团队" :bordered="false">
          <a-card
            :loading="loading"
            title="团队"
            :bordered="false"
          >
            <div class="members">
              <a-row>
                <a-col :span="12" v-for="(item, index) in teams" :key="index">
                <a-col
                  :span="12"
                  v-for="(item, index) in teams"
                  :key="index"
                >
                  <a>
                    <a-avatar size="small" :src="item.avatar" />
                    <a-avatar
                      size="small"
                      :src="item.avatar"
                    />
                    <span class="member">{{ item.name }}</span>
                  </a>
                </a-col>
@@ -110,251 +185,247 @@
</template>
<script>
  import { timeFix } from "@/utils/util"
  import {mapGetters} from "vuex"
import { timeFix } from "@/utils/util"
import { mapGetters } from "vuex"
  import PageLayout from '@/components/page/PageLayout'
  import HeadInfo from '@/components/tools/HeadInfo'
  import Radar from '@/components/chart/Radar'
  import { getRoleList, getServiceList, getFileAccessHttpUrl } from "@/api/manage"
import PageLayout from '@/components/page/PageLayout'
import HeadInfo from '@/components/tools/HeadInfo'
import Radar from '@/components/chart/Radar'
import { getRoleList, getServiceList, getFileAccessHttpUrl } from "@/api/manage"
  const DataSet = require('@antv/data-set')
const DataSet = require('@antv/data-set')
  export default {
    name: "Workplace",
    components: {
      PageLayout,
      HeadInfo,
      Radar
    },
    data() {
      return {
        timeFix: timeFix(),
        avatar: '',
        user: {},
export default {
  name: "Workplace",
  components: {
    PageLayout,
    HeadInfo,
    Radar
  },
  data() {
    return {
      timeFix: timeFix(),
      avatar: '',
      user: {},
        projects: [],
        loading: true,
        radarLoading: true,
        activities: [],
        teams: [],
      projects: [],
      loading: true,
      radarLoading: true,
      activities: [],
      teams: [],
        // data
        axis1Opts: {
          dataKey: 'item',
          line: null,
          tickLine: null,
          grid: {
            lineStyle: {
              lineDash: null
            },
            hideFirstLine: false
      // data
      axis1Opts: {
        dataKey: 'item',
        line: null,
        tickLine: null,
        grid: {
          lineStyle: {
            lineDash: null
          },
          hideFirstLine: false
        }
      },
      axis2Opts: {
        dataKey: 'score',
        line: null,
        tickLine: null,
        grid: {
          type: 'polygon',
          lineStyle: {
            lineDash: null
          }
        },
        axis2Opts: {
          dataKey: 'score',
          line: null,
          tickLine: null,
          grid: {
            type: 'polygon',
            lineStyle: {
              lineDash: null
            }
          }
        },
        scale: [{
          dataKey: 'score',
          min: 0,
          max: 80
        }],
        axisData: [
          { item: '引用', a: 70, b: 30, c: 40 },
          { item: '口碑', a: 60, b: 70, c: 40 },
          { item: '产量', a: 50, b: 60, c: 40 },
          { item: '贡献', a: 40, b: 50, c: 40 },
          { item: '热度', a: 60, b: 70, c: 40 },
          { item: '引用', a: 70, b: 50, c: 40 }
        ],
        radarData: []
      }
    },
    computed: {
      userInfo() {
        return this.$store.getters.userInfo
      }
    },
    created() {
      this.user = this.userInfo
      this.avatar = getFileAccessHttpUrl(this.userInfo.avatar)
      console.log('this.avatar :'+ this.avatar)
      getRoleList().then(res => {
        console.log('workplace -> call getRoleList()', res)
      })
      getServiceList().then(res => {
        console.log('workplace -> call getServiceList()', res)
      })
    },
    mounted() {
      this.getProjects()
      this.getActivity()
      this.getTeams()
      this.initRadar()
    },
    methods: {
      ...mapGetters(["nickname", "welcome"]),
      getProjects() {
        this.$http.get('/mock/api/list/search/projects')
          .then(res => {
            this.projects = res.result && res.result.data
            this.loading = false
          })
        }
      },
      getActivity() {
        this.$http.get('/mock/api/workplace/activity')
          .then(res => {
            this.activities = res.result
          })
      },
      getTeams() {
        this.$http.get('/mock/api/workplace/teams')
          .then(res => {
            this.teams = res.result
          })
      },
      initRadar() {
        this.radarLoading = true
      scale: [{
        dataKey: 'score',
        min: 0,
        max: 80
      }],
      axisData: [
        { item: '引用', a: 70, b: 30, c: 40 },
        { item: '口碑', a: 60, b: 70, c: 40 },
        { item: '产量', a: 50, b: 60, c: 40 },
        { item: '贡献', a: 40, b: 50, c: 40 },
        { item: '热度', a: 60, b: 70, c: 40 },
        { item: '引用', a: 70, b: 50, c: 40 }
      ],
      radarData: []
    }
  },
  computed: {
    userInfo() {
      return this.$store.getters.userInfo
    }
  },
  created() {
    this.user = this.userInfo
    this.avatar = getFileAccessHttpUrl(this.userInfo.avatar)
    console.log('this.avatar :' + this.avatar)
        this.$http.get('/mock/api/workplace/radar')
          .then(res => {
    getRoleList().then(res => {
      console.log('workplace -> call getRoleList()', res)
    })
            const dv = new DataSet.View().source(res.result)
            dv.transform({
              type: 'fold',
              fields: ['个人', '团队', '部门'],
              key: 'user',
              value: 'score'
            })
    getServiceList().then(res => {
      console.log('workplace -> call getServiceList()', res)
    })
  },
  mounted() {
    this.getProjects()
    this.getActivity()
    this.getTeams()
    this.initRadar()
  },
  methods: {
    ...mapGetters(["nickname", "welcome"]),
    getProjects() {
      this.$http.get('/mock/api/list/search/projects')
        .then(res => {
          this.projects = res.result && res.result.data
          this.loading = false
        })
    },
    getActivity() {
      this.$http.get('/mock/api/workplace/activity')
        .then(res => {
          this.activities = res.result
        })
    },
    getTeams() {
      this.$http.get('/mock/api/workplace/teams')
        .then(res => {
          this.teams = res.result
        })
    },
    initRadar() {
      this.radarLoading = true
            this.radarData = dv.rows
            this.radarLoading = false
      this.$http.get('/mock/api/workplace/radar')
        .then(res => {
          const dv = new DataSet.View().source(res.result)
          dv.transform({
            type: 'fold',
            fields: ['个人', '团队', '部门'],
            key: 'user',
            value: 'score'
          })
      }
          this.radarData = dv.rows
          this.radarLoading = false
        })
    }
  }
}
</script>
<style lang="less" scoped>
  .project-list {
    .card-title {
      font-size: 0;
      a {
        color: rgba(0, 0, 0, 0.85);
        margin-left: 12px;
        line-height: 24px;
        height: 24px;
        display: inline-block;
        vertical-align: top;
        font-size: 14px;
        &:hover {
          color: #1890ff;
        }
      }
    }
    .card-description {
      color: rgba(0, 0, 0, 0.45);
      height: 44px;
      line-height: 22px;
      overflow: hidden;
    }
    .project-item {
      display: flex;
      margin-top: 8px;
      overflow: hidden;
      font-size: 12px;
      height: 20px;
      line-height: 20px;
      a {
        color: rgba(0, 0, 0, 0.45);
        display: inline-block;
        flex: 1 1 0;
        &:hover {
          color: #1890ff;
        }
      }
      .datetime {
        color: rgba(0, 0, 0, 0.25);
        flex: 0 0 auto;
        float: right;
      }
    }
    .ant-card-meta-description {
      color: rgba(0, 0, 0, 0.45);
      height: 44px;
      line-height: 22px;
      overflow: hidden;
    }
  }
  .item-group {
    padding: 20px 0 8px 24px;
.project-list {
  .card-title {
    font-size: 0;
    a {
      color: rgba(0, 0, 0, 0.65);
      display: inline-block;
      font-size: 14px;
      margin-bottom: 13px;
      width: 25%;
    }
  }
  .members {
    a {
      display: block;
      margin: 12px 0;
      color: rgba(0, 0, 0, 0.85);
      margin-left: 12px;
      line-height: 24px;
      height: 24px;
      .member {
        font-size: 14px;
        color: rgba(0, 0, 0, .65);
        line-height: 24px;
        max-width: 100px;
        vertical-align: top;
        margin-left: 12px;
        transition: all 0.3s;
        display: inline-block;
      }
      display: inline-block;
      vertical-align: top;
      font-size: 14px;
      &:hover {
        span {
          color: #1890ff;
        }
        color: #1890ff;
      }
    }
  }
  .card-description {
    color: rgba(0, 0, 0, 0.45);
    height: 44px;
    line-height: 22px;
    overflow: hidden;
  }
  .project-item {
    display: flex;
    margin-top: 8px;
    overflow: hidden;
    font-size: 12px;
    height: 20px;
    line-height: 20px;
    a {
      color: rgba(0, 0, 0, 0.45);
      display: inline-block;
      flex: 1 1 0;
  .mobile {
    .project-list {
      .project-card-grid {
        width: 100%;
      &:hover {
        color: #1890ff;
      }
    }
    .more-info {
      border: 0;
      padding-top: 16px;
      margin: 16px 0 16px;
    .datetime {
      color: rgba(0, 0, 0, 0.25);
      flex: 0 0 auto;
      float: right;
    }
  }
  .ant-card-meta-description {
    color: rgba(0, 0, 0, 0.45);
    height: 44px;
    line-height: 22px;
    overflow: hidden;
  }
}
    .headerContent .title .welcome-text {
      display: none;
.item-group {
  padding: 20px 0 8px 24px;
  font-size: 0;
  a {
    color: rgba(0, 0, 0, 0.65);
    display: inline-block;
    font-size: 14px;
    margin-bottom: 13px;
    width: 25%;
  }
}
.members {
  a {
    display: block;
    margin: 12px 0;
    line-height: 24px;
    height: 24px;
    .member {
      font-size: 14px;
      color: rgba(0, 0, 0, 0.65);
      line-height: 24px;
      max-width: 100px;
      vertical-align: top;
      margin-left: 12px;
      transition: all 0.3s;
      display: inline-block;
    }
    &:hover {
      span {
        color: #1890ff;
      }
    }
  }
}
.mobile {
  .project-list {
    .project-card-grid {
      width: 100%;
    }
  }
  .more-info {
    border: 0;
    padding-top: 16px;
    margin: 16px 0 16px;
  }
  .headerContent .title .welcome-text {
    display: none;
  }
}
</style>
src/views/eam/Daily3MaintenanceOrderList.vue
@@ -606,7 +606,7 @@
    handleOrderExe(record) {
      this.$refs.DailyMaintenanceOrderExeDrawer.visible = true
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '日常保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '三级保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.handleShow(record)
      if (record.status === '3') {
        this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true//保存、暂存、报工
src/views/eam/DailyInspectionOrderList.vue
@@ -323,21 +323,21 @@
          align: "center",
          dataIndex: 'statusName'
        },
        {
          title: '点检日期',
          align: "center",
          dataIndex: 'inspectionDate',
          customRender: function (text) {
            return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
          }
        },
        // {
        //   title: '点检日期',
        //   align: "center",
        //   dataIndex: 'inspectionDate',
        //   customRender: function (text) {
        //     return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
        //   }
        // },
        {
          title: '点检时间',
          align: "center",
          dataIndex: 'inspectionTime',
          customRender: function (text) {
            return !text ? "" : (text.length > 10 ? text.substr(11, 20) : text)
          }
          // customRender: function (text) {
          //   return !text ? "" : (text.length > 10 ? text.substr(11, 20) : text)
          // }
        },
        {
          title: '截止时间',
@@ -369,18 +369,18 @@
          align: "center",
          dataIndex: 'teamName'
        },
        {
          title: '开工条件',
          align: "center",
          dataIndex: 'startWorkCondition',
          customRender: (text) => {
            if (text == '1') {
              return "是";
            } else if (text == '0') {
              return "否";
            }
          },
        },
        // {
        //   title: '开工条件',
        //   align: "center",
        //   dataIndex: 'startWorkCondition',
        //   customRender: (text) => {
        //     if (text == '1') {
        //       return "是";
        //     } else if (text == '0') {
        //       return "否";
        //     }
        //   },
        // },
        {
          title: '点检标准编码',
          align: "center",
src/views/eam/DailyMaintenanceOrderList.vue
@@ -503,7 +503,7 @@
    handleOrderExe(record) {
      this.$refs.DailyMaintenanceOrderExeDrawer.visible = true
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '日常保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '二级保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.handleShow(record)
      if (record.status === '3') {
        this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true//保存、暂存、报工
src/views/eam/EquipmentListOfAll.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,12 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfCrane.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfEnvProEquipment.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -580,6 +580,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfFilesCarousel.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfPressureVessel.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfProduct.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfRide.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfTester.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfTruck.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,11 +104,11 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
              :labelCol="labelCol"
            :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <a-tree-select
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfWeldingMachine.vue
@@ -77,20 +77,20 @@
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="产线"
              label="工区"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
            <j-dict-select-tag
                allow-clear
                placeholder="请选择产线"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_work_center,name,id,del_flag!='1'"
                v-model="queryParam.workCenterId"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
          <!-- <a-col :span="6">
            <a-form-item
              label="车间"
              :labelCol="labelCol"
@@ -104,7 +104,7 @@
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="6">
            <a-form-item
              label="维护部门"
@@ -577,6 +577,11 @@
          align: "center",
          dataIndex: 'specificEquipment_dictText',
        },
        {
          title: '技术状态鉴定类型',
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/InspectionCycleList.vue
@@ -206,16 +206,6 @@
          },
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '周期编码',
          align: 'center',
          dataIndex: 'code',
@@ -267,35 +257,45 @@
          dataIndex: 'unitName',
        },
        {
          title: '调整方式',
          title: '版本',
          align: 'center',
          dataIndex: 'arrangeWayName',
          dataIndex: 'version',
        },
        {
          title: '开工条件',
          title: '版本状态',
          align: 'center',
          dataIndex: 'startConditionName',
          dataIndex: 'versionStatusName',
        },
        {
          title: '逾期处理方式',
          align: 'center',
          dataIndex: 'overdueDisposeModeName',
        },
        {
          title: '依据日历',
          align: 'center',
          dataIndex: 'accordingCalendarName',
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
        },
        // {
        //   title: '调整方式',
        //   align: 'center',
        //   dataIndex: 'arrangeWayName',
        // },
        // {
        //   title: '开工条件',
        //   align: 'center',
        //   dataIndex: 'startConditionName',
        // },
        // {
        //   title: '逾期处理方式',
        //   align: 'center',
        //   dataIndex: 'overdueDisposeModeName',
        // },
        // {
        //   title: '依据日历',
        //   align: 'center',
        //   dataIndex: 'accordingCalendarName',
        // },
        // {
        //   title: '生效时间',
        //   align: 'center',
        //   dataIndex: 'takeEffectTime',
        // },
        // {
        //   title: '失效时间',
        //   align: 'center',
        //   dataIndex: 'loseEfficacyTime',
        // },
        {
          title: '创建人',
          align: 'center',
src/views/eam/MaintenanceCycleList.vue
@@ -191,16 +191,7 @@
            return parseInt(index) + 1
          },
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '周期编码',
          align: 'center',
@@ -252,30 +243,40 @@
          align: 'center',
          dataIndex: 'unitName',
        },
        // {
        //   title: '调整方式',
        //   align: 'center',
        //   dataIndex: 'arrangeWayName',
        // },
        // {
        //   title: '逾期处理方式',
        //   align: 'center',
        //   dataIndex: 'overdueDisposeModeName',
        // },
        // {
        //   title: '依据日历',
        //   align: 'center',
        //   dataIndex: 'accordingCalendarName',
        // },
        // {
        //   title: '生效时间',
        //   align: 'center',
        //   dataIndex: 'takeEffectTime',
        // },
        // {
        //   title: '失效时间',
        //   align: 'center',
        //   dataIndex: 'loseEfficacyTime',
        // },
        {
          title: '调整方式',
          title: '版本',
          align: 'center',
          dataIndex: 'arrangeWayName',
          dataIndex: 'version',
        },
        {
          title: '逾期处理方式',
          title: '版本状态',
          align: 'center',
          dataIndex: 'overdueDisposeModeName',
        },
        {
          title: '依据日历',
          align: 'center',
          dataIndex: 'accordingCalendarName',
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
          dataIndex: 'versionStatusName',
        },
        {
          title: '创建人',
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue
@@ -348,7 +348,7 @@
  },
  data() {
    return {
      title: "日常保养工单执行",
      title: "三级保养工单执行",
      visible: false,
      maskClosable: true,
      confirmLoading: false,
@@ -422,26 +422,26 @@
        //   align: 'center',
        //   dataIndex: 'maintenanceTool',
        // },
        {
          title: '安全要求',
          align: 'center',
          dataIndex: 'maintenanceRequire',
        },
        {
          title: '工时定额(小时)',
          align: 'center',
          dataIndex: 'workingHourQuota',
        },
        // {
        //   title: '安全要求',
        //   align: 'center',
        //   dataIndex: 'maintenanceRequire',
        // },
        // {
        //   title: '工时定额(小时)',
        //   align: 'center',
        //   dataIndex: 'workingHourQuota',
        // },
        {
          title: '保养周期',
          align: 'center',
          dataIndex: 'maintenanceCycleName',
        },
        {
          title: '维保专业',
          align: 'center',
          dataIndex: 'maintenanceSpecialtyName',
        },
        // {
        //   title: '维保专业',
        //   align: 'center',
        //   dataIndex: 'maintenanceSpecialtyName',
        // },
        {
          title: '保养人',
          align: 'center',
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue
@@ -78,6 +78,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal.vue
@@ -13,6 +13,23 @@
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col
            hidden
            :span="24"
          >
            <a-form-item
              label="保养工单编号"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入保养工单编号'"
                v-decorator="['technologyStatusVerificationBill', validatorRules.technologyStatusVerificationBill ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="24">
            <a-form-item
              label="统一编号"
@@ -157,7 +174,7 @@
      this.visible = true;
      this.disableSubmit = false;
      this.$nextTick(() => {
        this.form.setFieldsValue(pick(this.model, 'equipmentNum', 'equipmentName', 'equipmentModel', 'specification', 'technologyStatus'))
        this.form.setFieldsValue(pick(this.model, 'technologyStatusVerificationBill', 'equipmentNum', 'equipmentName', 'equipmentModel', 'specification', 'technologyStatus'))
      });
      if (record.id) {
        this.codeDisable = true;
@@ -182,7 +199,7 @@
          if (!this.model.id) {
            obj = postAction(this.url.add, formData);
          } else {
            obj = requestPut(this.url.edit, { id: this.model.equipmentId, technologyStatus: this.model.technologyStatus, maintenanceOrderId: this.model.id });
            obj = requestPut(this.url.edit, { id: this.model.equipmentId, technologyStatus: this.model.technologyStatus, maintenanceOrderId: this.model.id, technologyStatusVerificationBill: this.model.technologyStatusVerificationBill });
          }
          obj.then((res) => {
            if (res.success) {
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue
@@ -129,7 +129,7 @@
                  :pagination="ipagination"
                  :loading="loading"
                  @change="handleTableChange"
                  :scroll="{ x: 'calc(1200px + 50%)', y: 900 }"
                  :scroll="{ x: 'calc(1000px + 50%)', y: 900 }"
                >
                  <template
                    v-for="col in columns"
@@ -159,6 +159,8 @@
                        <!-- :options="record.inspectionCycles" -->
                        <a-select-option value="1">正常</a-select-option>
                        <a-select-option value="2">异常</a-select-option>
                        <a-select-option value="3">故障停机</a-select-option>
                        <a-select-option value="4">没开机</a-select-option>
                      </a-select>
                      <a-input-number
                        :value="text"
@@ -361,28 +363,28 @@
          align: 'center',
          dataIndex: 'detectionStandard',
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit',
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethod_dictText',
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool',
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit',
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethod_dictText',
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool',
        // },
        {
          title: '*点检结果',
          align: 'center',
          dataIndex: 'inspectionProjectResult',
          scopedSlots: { customRender: 'inspectionProjectResult' },
          className: 'red',
        },
        // className: 'red',
        {
          title: '判定',
          align: 'center',
@@ -411,9 +413,9 @@
          title: '*异常处置',
          align: 'center',
          dataIndex: 'treatmentMeasure',
          className: 'red',
          scopedSlots: { customRender: 'treatmentMeasure' },
        },
        // className: 'red',
      ],
      url: {
        list: "/eam/inspectionOrderDetail/list",
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderModal.vue
@@ -26,7 +26,7 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
          <!-- <a-col :span="12">
            <a-form-item
              label="开工条件"
              :labelCol="labelCol"
@@ -40,7 +40,7 @@
                @change="handle2Switch(model.startWorkCondition)"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
@@ -386,28 +386,28 @@
        {
          title: '点检项目',
          align: 'center',
          dataIndex: 'inspectionProjectNum'
          dataIndex: 'inspectionProjectName'
        },
        {
          title: '检测标准',
          align: 'center',
          dataIndex: 'detectionStandard'
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethodName'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool'
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit'
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethodName'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool'
        // },
        {
          title: '示意图',
          align: "center",
@@ -489,7 +489,8 @@
  methods: {
    add() {
      this.edit({ startWorkCondition: "1", inspectionOrderDetails: [] })
      this.edit({ inspectionOrderDetails: [] })
      // this.edit({ startWorkCondition: "1", inspectionOrderDetails: [] })
      this.getSeq()
    },
@@ -602,13 +603,13 @@
    //   }
    // },
    handle2Switch(startWorkCondition) {
      if ('1' == startWorkCondition) {
        this.model.startWorkCondition = '0'
      } else {
        this.model.startWorkCondition = '1'
      }
    },
    // handle2Switch(startWorkCondition) {
    //   if ('1' == startWorkCondition) {
    //     this.model.startWorkCondition = '0'
    //   } else {
    //     this.model.startWorkCondition = '1'
    //   }
    // },
    // handle2Change(val) {
    //   this.inspectionCycles = [];
src/views/eam/modules/dailyInspectionOrder/DailyInspectionStandardList.vue
@@ -160,11 +160,6 @@
          dataIndex: 'num',
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '设备编码',
          align: 'center',
          dataIndex: 'equipmentNum',
@@ -189,6 +184,11 @@
          align: "center",
          dataIndex: 'useDepartName'
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
      ],
      url: {
        list: "/eam/inspectionStandard/findInspectionStandardList",
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue
@@ -127,23 +127,23 @@
          dataIndex: 'detectionStandard',
        },
        {
          title: '合格范围',
          align: "center",
          dataIndex: 'acceptabilityLimit',
        // {
        //   title: '合格范围',
        //   align: "center",
        //   dataIndex: 'acceptabilityLimit',
        },
        {
          title: '方法',
          align: "center",
          dataIndex: 'inspectionMethodName',
        // },
        // {
        //   title: '方法',
        //   align: "center",
        //   dataIndex: 'inspectionMethodName',
        },
        {
          title: '工具',
          align: "center",
          dataIndex: 'inspectionTool',
        },
        // },
        // {
        //   title: '工具',
        //   align: "center",
        //   dataIndex: 'inspectionTool',
        // },
        {
          title: '周期',
          align: "center",
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue
@@ -201,6 +201,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/dailyInspectionStandard/JSelectDailylnspectionStandardModal.vue
@@ -101,21 +101,21 @@
          align: 'center',
          dataIndex: 'detectionStandard'
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethod_dictText'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool'
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit'
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethod_dictText'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool'
        // },
        // {
        //   title: '周期',
        //   align: 'center',
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue
@@ -152,7 +152,7 @@
                  <template
                    v-for="col in columns"
                    :slot="col.dataIndex"
                    slot-scope='text, record'
                    slot-scope='text, record, index'
                  >
                    <div :key="col.dataIndex">
                      <span
@@ -192,11 +192,39 @@
                        é¢„览
                      </a> -->
                      <a-input
                        :value="text"
                        v-if="col.dataIndex == 'maintenanceOrderDetailUda1'"
                        @change="(e)=>handleChange(e, record.key, col, index)"
                        placeholder="请输入保养人"
                      />
                      <a-input
                        :value="text"
                        v-if="col.dataIndex == 'maintenanceOrderDetailUda2'"
                        @change="(e)=>handleChange(e, record.key, col, index)"
                        placeholder="请输入执行情况"
                      />
                    </div>
                  </template>
                </a-table>
                <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
                  <a-row :style="{textAlign:'right'}">
                    <a-button
                      :style="{marginRight: '8px'}"
                      @click="handleCancel"
                    >
                      å–消
                    </a-button>
                    <a-button
                      @click="handleOk()"
                      type="primary"
                      :disabled="this.model.status!='4'"
                      :loading="confirmLoading"
                    >保存</a-button>
                  </a-row>
                  <!-- v-has="'dailyMaintenanceOrder:actualWorkHoursSave'" -->
                  <!-- :disabled="false" -->
                </div>
              </div>
            </a-tab-pane>
@@ -297,7 +325,7 @@
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { requestPut, getAction, downFile } from '@/api/manage'
import { requestPut, getAction, downFile, postAction } from '@/api/manage'
import Tooltip from 'ant-design-vue/es/tooltip'
import { preview } from 'vue-photo-preview'
@@ -327,7 +355,7 @@
  },
  data() {
    return {
      title: "日常保养工单执行",
      title: "二级保养工单执行",
      visible: false,
      maskClosable: true,
      confirmLoading: false,
@@ -339,6 +367,7 @@
      maintenanceStandardId: '-1',
      dataSource: [],
      model: {},
      form: this.$form.createForm(this),
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
@@ -389,35 +418,49 @@
          align: 'center',
          dataIndex: 'standard',
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'maintenanceMethodName',
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'maintenanceTool',
        },
        {
          title: '安全要求',
          align: 'center',
          dataIndex: 'maintenanceRequire',
        },
        {
          title: '工时定额(小时)',
          align: 'center',
          dataIndex: 'workingHourQuota',
        },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'maintenanceMethodName',
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'maintenanceTool',
        // },
        // {
        //   title: '安全要求',
        //   align: 'center',
        //   dataIndex: 'maintenanceRequire',
        // },
        // {
        //   title: '工时定额(小时)',
        //   align: 'center',
        //   dataIndex: 'workingHourQuota',
        // },
        {
          title: '保养周期',
          align: 'center',
          dataIndex: 'maintenanceCycleName',
        },
        // {
        //   title: '维保专业',
        //   align: 'center',
        //   dataIndex: 'maintenanceSpecialtyName',
        // },
        {
          title: '维保专业',
          title: '执行情况',
          align: 'center',
          dataIndex: 'maintenanceSpecialtyName',
          dataIndex: 'maintenanceOrderDetailUda2',
          width: 200,
          scopedSlots: { customRender: 'maintenanceOrderDetailUda2' },
        },
        {
          title: '保养人',
          align: 'center',
          dataIndex: 'maintenanceOrderDetailUda1',
          width: 200,
          scopedSlots: { customRender: 'maintenanceOrderDetailUda1' },
        },
      ],
      url: {
@@ -427,6 +470,7 @@
        editStatus: "/eam/dailyMaintenanceOrder/editStatus",
        revocation: "/eam/dailyMaintenanceOrder/revocation",
        report: "/eam/dailyMaintenanceOrder/report",
        edit: "/eam/dailyMaintenanceOrderDetail/edit"
      },
    }
  },
@@ -587,7 +631,46 @@
    },
    //保存
    handleOk() {
      const that = this
      this.loading = true;
      this.form.validateFields((err, values) => {
        if (!err) {
          that.confirmLoading = true
          let formData = {}
          formData.dailyMaintenanceOrderDetails = that.dataSource;
          let obj = obj = postAction(this.url.edit, formData)
          obj.then((res) => {
            if (res.success) {
              that.$message.success(res.message)
              that.$emit('ok')
            } else {
              that.$message.warning(res.message)
            }
          }).finally(() => {
            that.confirmLoading = false
            that.loadData1();
            this.loading = false;
          })
        }
      })
    },
    handleChange(value, key, column, index) {
      debugger
      let that = this;
      const temp = [...that.dataSource];
      const target = temp[index];
      if (target) {
        target[column.dataIndex] = value;
        if ('maintenanceOrderDetailUda1' == column.dataIndex) {
          target['maintenanceOrderDetailUda1'] = value.target.value;
        }
        if ('maintenanceOrderDetailUda2' == column.dataIndex) {
          target['maintenanceOrderDetailUda2'] = value.target.value;
        }
        that.dataSource = temp;
      }
    },
    view(record) {
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue
@@ -78,6 +78,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
    </a-table>
@@ -190,7 +191,7 @@
        {
          title: '类型',
          align: 'center',
          dataIndex: 'maintenanceMethod1'
          dataIndex: 'maintenanceRole'
        },
        {
@@ -201,7 +202,7 @@
        {
          title: '保养项目',
          align: 'center',
          dataIndex: 'maintenanceProjectNum'
          dataIndex: 'maintenanceProjectName'
        },
        {
          title: '保养标准',
@@ -211,12 +212,12 @@
        {
          title: '执行情况',
          align: 'center',
          dataIndex: 'maintenanceTool1'
          dataIndex: 'maintenanceOrderDetailUda2'
        },
        {
          title: '执行人',
          align: 'center',
          dataIndex: 'photo1',
          dataIndex: 'maintenanceOrderDetailUda1',
        },
      ],
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue
@@ -298,6 +298,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <!-- <span
        slot="photo"
@@ -431,23 +432,23 @@
        {
          title: '保养项目',
          align: 'center',
          dataIndex: 'maintenanceProjectNum'
          dataIndex: 'maintenanceProjectName'
        },
        {
          title: '保养标准',
          align: 'center',
          dataIndex: 'standard'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'maintenanceMethod'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'maintenanceTool'
        },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'maintenanceMethod'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'maintenanceTool'
        // },
        {
          title: '示意图',
          align: 'center',
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue
@@ -263,6 +263,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/equipmentNew/EquipmentModal.vue
@@ -964,7 +964,7 @@
          { required: true, message: '请选择维护部门!' },
        ],
        useId: [
          { required: true, message: '请选择使用部门部门!' },
          { required: true, message: '请选择使用部门!' },
        ],
        specificEquipment: [
          { required: true, message: '请选择关键设备标识!' },
@@ -979,7 +979,7 @@
          { required: true, message: '请选择设备产线!' },
        ],
        factoryModelId: [
          { required: true, message: '请选择设备车间!' },
          { required: true, message: '请选择工区!' },
        ],
        warrantyStart: [
          { required: true, message: '请选择开始日期!' },
src/views/eam/modules/inspectionCycle/InspectionCycleForm.vue
@@ -122,6 +122,20 @@
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="开工条件"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -134,9 +148,9 @@
                v-model="model.startCondition"
              />
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
        <!-- <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="调整方式"
@@ -167,9 +181,9 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        </a-row> -->
        <a-row>
          <a-col :span="24/2">
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="依据日历"
              :labelCol="labelCol"
@@ -183,21 +197,8 @@
                v-model="model.accordingCalendar"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
src/views/eam/modules/maintenanceCycle/MaintenanceCycleForm.vue
@@ -121,6 +121,20 @@
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="调整方式"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -133,9 +147,9 @@
                v-model="model.arrangeWay"
              />
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
        <!-- <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="逾期处理方式"
@@ -166,7 +180,7 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        </a-row> -->
        <a-row>
          <a-col :span="24/2">
            <a-form-item
@@ -203,20 +217,7 @@
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col
            v-if=" model.isRevise == true"
            :span="24/2"
src/views/system/RoleUserList.vue
@@ -1,15 +1,32 @@
<template>
  <a-row :gutter="10">
    <a-col :md="leftColMd" :sm="24" style="margin-bottom: 20px">
    <a-col
      :md="leftColMd"
      :sm="24"
      style="margin-bottom: 20px"
    >
      <a-card :bordered="false">
        <!-- æŸ¥è¯¢åŒºåŸŸ -->
        <div class="table-page-search-wrapper">
          <!-- æœç´¢åŒºåŸŸ -->
          <a-form layout="inline" @keyup.enter.native="searchQuery">
          <a-form
            layout="inline"
            @keyup.enter.native="searchQuery"
          >
            <a-row :gutter="24">
              <a-col :md="12" :sm="8">
                <a-form-item label="角色名称" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
                  <a-input placeholder="" v-model="queryParam.roleName"></a-input>
              <a-col
                :md="12"
                :sm="8"
              >
                <a-form-item
                  label="角色名称"
                  :labelCol="{span: 5}"
                  :wrapperCol="{span: 18, offset: 1}"
                >
                  <a-input
                    placeholder=""
                    v-model="queryParam.roleName"
                  ></a-input>
                </a-form-item>
              </a-col>
              <!--
@@ -21,29 +38,72 @@
                </a-form-item>
              </a-col>
              -->
              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
            <a-col :md="12" :sm="24">
               <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </a-col>
          </span>
              <span
                style="float: left;overflow: hidden;"
                class="table-page-search-submitButtons"
              >
                <a-col
                  :md="12"
                  :sm="24"
                >
                  <a-button
                    type="primary"
                    @click="searchQuery"
                    icon="search"
                    style="margin-left: 21px"
                  >查询</a-button>
                  <a-button
                    type="primary"
                    @click="searchReset"
                    icon="reload"
                    style="margin-left: 8px"
                  >重置</a-button>
                </a-col>
              </span>
            </a-row>
          </a-form>
        </div>
        <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
        <div class="table-operator" style="margin: 5px 0 10px 2px">
          <a-button @click="handleAdd" type="primary" icon="plus">新建角色</a-button>
        <div
          class="table-operator"
          style="margin: 5px 0 10px 2px"
        >
          <a-button
            @click="handleAdd"
            type="primary"
            icon="plus"
          >新建角色</a-button>
          <!--<a-button @click="handleEdit(model1)" type="primary" icon="plus">角色编辑</a-button>-->
          <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
            <a-button type="primary" icon="import">导入</a-button>
          <a-upload
            name="file"
            :showUploadList="false"
            :multiple="false"
            :headers="tokenHeader"
            :action="importExcelUrl"
            @change="handleImportExcel"
          >
            <a-button
              type="primary"
              icon="import"
            >导入</a-button>
          </a-upload>
          <a-button type="primary" icon="download" @click="handleExportXls('角色管理')">导出</a-button>
          <a-button
            type="primary"
            icon="download"
            @click="handleExportXls('角色管理')"
          >导出</a-button>
        </div>
        <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <div
          class="ant-alert ant-alert-info"
          style="margin-bottom: 16px;"
        >
          <i class="anticon anticon-info-circle ant-alert-icon">
          </i> å·²é€‰æ‹© <a><b>{{ selectedRowKeys1.length }}</b></a>项
          <a style="margin-left: 24px" @click="onClearSelected1">清空</a>
          <a
            style="margin-left: 24px"
            @click="onClearSelected1"
          >清空</a>
        </div>
        <div style="margin-top: 15px">
@@ -58,86 +118,149 @@
            :pagination="ipagination"
            :loading="loading"
            :rowSelection="{selectedRowKeys: selectedRowKeys1, onChange: onSelectChange1, type:'radio'}"
            @change="handleTableChange">
          <span slot="action" slot-scope="text, record">
            <a @click="handleOpen(record)">用户</a>
            <a-divider type="vertical"/>
            @change="handleTableChange"
          >
            <span
              slot="action"
              slot-scope="text, record"
            >
              <a @click="handleOpen(record)">用户</a>
              <a-divider type="vertical" />
            <a-dropdown>
              <a class="ant-dropdown-link">
                æ›´å¤š <a-icon type="down"/>
              </a>
              <a-menu slot="overlay">
                <a-menu-item>
                  <a @click="handlePerssion(record.id)">授权</a>
                </a-menu-item>
                <a-menu-item>
                  <a @click="handleEdit(record)">编辑</a>
                </a-menu-item>
                <a-menu-item>
                  <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete1(record.id)">
                    <a>删除</a>
                  </a-popconfirm>
                </a-menu-item>
              </a-menu>
            </a-dropdown>
        </span>
              <a-dropdown>
                <a class="ant-dropdown-link">
                  æ›´å¤š <a-icon type="down" />
                </a>
                <a-menu slot="overlay">
                  <a-menu-item>
                    <a @click="handlePerssion(record.id)">授权</a>
                  </a-menu-item>
                  <a-menu-item>
                    <a @click="handleEdit(record)">编辑</a>
                  </a-menu-item>
                  <a-menu-item>
                    <a-popconfirm
                      title="确定删除吗?"
                      @confirm="() => handleDelete1(record.id)"
                    >
                      <a>删除</a>
                    </a-popconfirm>
                  </a-menu-item>
                </a-menu>
              </a-dropdown>
            </span>
          </a-table>
        </div>
        <!-- å³ä¾§çš„角色权限配置 -->
        <user-role-modal ref="modalUserRole"></user-role-modal>
        <role-modal ref="modalForm" @ok="modalFormOk"></role-modal>
        <!-- <user-role-modal ref="modalUserRole"></user-role-modal> -->
        <user-role-modal-new ref="modalUserRole"></user-role-modal-new>
        <role-modal
          ref="modalForm"
          @ok="modalFormOk"
        ></role-modal>
      </a-card>
    </a-col>
    <a-col :md="rightColMd" :sm="24" v-if="this.rightcolval == 1">
    <a-col
      :md="rightColMd"
      :sm="24"
      v-if="this.rightcolval == 1"
    >
      <a-card :bordered="false">
        <div style="text-align: right;">
          <a-icon type="close-circle" @click="hideUserList" />
          <a-icon
            type="close-circle"
            @click="hideUserList"
          />
        </div>
        <!-- æŸ¥è¯¢åŒºåŸŸ -->
        <div class="table-page-search-wrapper">
          <a-form layout="inline">
            <a-row :gutter="24">
              <a-col :md="12" :sm="12">
              <a-col
                :md="12"
                :sm="12"
              >
                <a-form-item label="用户账号">
                  <a-input placeholder="" v-model="queryParam2.username"></a-input>
                  <a-input
                    placeholder=""
                    v-model="queryParam2.username"
                  ></a-input>
                </a-form-item>
              </a-col>
              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
            <a-col :md="9" :sm="24">
             <a-button type="primary" @click="searchQuery2" icon="search" style="margin-left: 21px">查询</a-button>
              <a-button type="primary" @click="searchReset2" icon="reload" style="margin-left: 8px">重置</a-button>
              <span
                style="float: left;overflow: hidden;"
                class="table-page-search-submitButtons"
              >
                <a-col
                  :md="9"
                  :sm="24"
                >
                  <a-button
                    type="primary"
                    @click="searchQuery2"
                    icon="search"
                    style="margin-left: 21px"
                  >查询</a-button>
                  <a-button
                    type="primary"
                    @click="searchReset2"
                    icon="reload"
                    style="margin-left: 8px"
                  >重置</a-button>
            </a-col>
          </span>
                </a-col>
              </span>
            </a-row>
          </a-form>
        </div>
        <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
        <div class="table-operator" :md="24" :sm="24">
          <a-button @click="handleAdd2" type="primary" icon="plus" style="margin-top: 16px">新增用户</a-button>
        <div
          class="table-operator"
          :md="24"
          :sm="24"
        >
          <a-button
            @click="handleAdd2"
            type="primary"
            icon="plus"
            style="margin-top: 16px"
          >新增用户</a-button>
          <!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
          <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>
          <a-button
            @click="handleAddUserRole"
            type="primary"
            icon="plus"
            style="margin-top: 16px"
          >已有用户</a-button>
          <a-dropdown v-if="selectedRowKeys2.length > 0">
            <a-menu slot="overlay">
              <a-menu-item key="1" @click="batchDel2">
                <a-icon type="delete"/>
              <a-menu-item
                key="1"
                @click="batchDel2"
              >
                <a-icon type="delete" />
                åˆ é™¤
              </a-menu-item>
            </a-menu>
            <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ
              <a-icon type="down"/>
              <a-icon type="down" />
            </a-button>
          </a-dropdown>
        </div>
        <!-- table区域-begin -->
        <div>
          <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
          <div
            class="ant-alert ant-alert-info"
            style="margin-bottom: 16px;"
          >
            <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{
            selectedRowKeys2.length }}</a>项
            <a style="margin-left: 24px" @click="onClearSelected2">清空</a>
            <a
              style="margin-left: 24px"
              @click="onClearSelected2"
            >清空</a>
          </div>
          <a-table
            style="height:500px"
@@ -150,399 +273,417 @@
            :pagination="ipagination2"
            :loading="loading2"
            :rowSelection="{selectedRowKeys: selectedRowKeys2, onChange: onSelectChange2}"
            @change="handleTableChange2">
           <span slot="action" slot-scope="text, record">
           <a @click="handleEdit2(record)">编辑</a>
          <a-divider type="vertical"/>
          <a-dropdown>
            <a class="ant-dropdown-link">
              æ›´å¤š <a-icon type="down"/>
            </a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
            @change="handleTableChange2"
          >
            <span
              slot="action"
              slot-scope="text, record"
            >
              <a @click="handleEdit2(record)">编辑</a>
              <a-divider type="vertical" />
              <a-dropdown>
                <a class="ant-dropdown-link">
                  æ›´å¤š <a-icon type="down" />
                </a>
                <a-menu slot="overlay">
                  <a-menu-item>
                    <a-popconfirm
                      title="确定删除吗?"
                      @confirm="() => handleDelete2(record.id)"
                    >
                      <a>删除</a>
                    </a-popconfirm>
                  </a-menu-item>
                </a-menu>
              </a-dropdown>
            </span>
          </a-table>
        </div>
        <!-- è¡¨å•区域 -->
        <role-modal ref="modalForm" @ok="modalFormOk"></role-modal>
        <user-modal ref="modalForm2" @ok="modalFormOk2"></user-modal>
        <Select-User-Modal ref="selectUserModal" @selectFinished="selectOK"></Select-User-Modal>
        <role-modal
          ref="modalForm"
          @ok="modalFormOk"
        ></role-modal>
        <user-modal
          ref="modalForm2"
          @ok="modalFormOk2"
        ></user-modal>
        <Select-User-Modal
          ref="selectUserModal"
          @selectFinished="selectOK"
        ></Select-User-Modal>
      </a-card>
    </a-col>
  </a-row>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { deleteAction, postAction, getAction } from '@/api/manage'
  import SelectUserModal from './modules/SelectUserModal'
  import RoleModal from './modules/RoleModal'
  import UserModal from './modules/UserModal'
  import { filterObj } from '@/utils/util'
  import UserRoleModal from './modules/UserRoleModal'
  import moment from 'moment'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { deleteAction, postAction, getAction } from '@/api/manage'
import SelectUserModal from './modules/SelectUserModal'
import RoleModal from './modules/RoleModal'
import UserModal from './modules/UserModal'
import { filterObj } from '@/utils/util'
import UserRoleModal from './modules/UserRoleModal'
import moment from 'moment'
import UserRoleModalNew from './modules/UserRoleModalNew'
  export default {
    name: 'RoleUserList',
    mixins: [JeecgListMixin],
    components: {
      UserRoleModal,
      SelectUserModal,
      RoleModal,
      UserModal,
      moment
    },
    data() {
      return {
        model1: {},
        model2: {},
        currentRoleId: '',
        queryParam1: {},
        queryParam2: {},
        dataSource1: [],
        dataSource2: [],
        ipagination1: {
          current: 1,
          pageSize: 10,
          pageSizeOptions: ['10', '20', '30'],
          showTotal: (total, range) => {
            return range[0] + '-' + range[1] + ' å…±' + total + '条'
export default {
  name: 'RoleUserList',
  mixins: [JeecgListMixin],
  components: {
    UserRoleModal,
    SelectUserModal,
    RoleModal,
    UserModal,
    moment,
    UserRoleModalNew
  },
  data() {
    return {
      model1: {},
      model2: {},
      currentRoleId: '',
      queryParam1: {},
      queryParam2: {},
      dataSource1: [],
      dataSource2: [],
      ipagination1: {
        current: 1,
        pageSize: 10,
        pageSizeOptions: ['10', '20', '30'],
        showTotal: (total, range) => {
          return range[0] + '-' + range[1] + ' å…±' + total + '条'
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0
      },
      ipagination2: {
        current: 1,
        pageSize: 10,
        pageSizeOptions: ['10', '20', '30'],
        showTotal: (total, range) => {
          return range[0] + '-' + range[1] + ' å…±' + total + '条'
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0
      },
      isorter1: {
        column: 'createTime',
        order: 'desc'
      },
      isorter2: {
        column: 'createTime',
        order: 'desc'
      },
      filters1: {},
      filters2: {},
      loading1: false,
      loading2: false,
      selectedRowKeys1: [],
      selectedRowKeys2: [],
      selectionRows1: [],
      selectionRows2: [],
      test: {},
      rightcolval: 0,
      columns:
        [
          {
            title: '角色编码',
            align: 'center',
            dataIndex: 'roleCode'
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0
        },
        ipagination2: {
          current: 1,
          pageSize: 10,
          pageSizeOptions: ['10', '20', '30'],
          showTotal: (total, range) => {
            return range[0] + '-' + range[1] + ' å…±' + total + '条'
          {
            title: '角色名称',
            align: 'center',
            dataIndex: 'roleName'
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0
        },
        isorter1: {
          column: 'createTime',
          order: 'desc'
        },
        isorter2: {
          column: 'createTime',
          order: 'desc'
        },
        filters1: {},
        filters2: {},
        loading1: false,
        loading2: false,
        selectedRowKeys1: [],
        selectedRowKeys2: [],
        selectionRows1: [],
        selectionRows2: [],
        test:{},
        rightcolval:0,
        columns:
          [
            {
              title: '角色编码',
              align: 'center',
              dataIndex: 'roleCode'
            },
            {
              title: '角色名称',
              align: 'center',
              dataIndex: 'roleName'
            },
            {
              title: '创建时间',
              dataIndex: 'createTime',
              align:"center",
              sorter: true,
              customRender: (text) => {
                return moment(text).format('YYYY-MM-DD')
              }
            },
            {
              title: '操作',
              dataIndex: 'action',
              align: 'center',
              scopedSlots: { customRender: 'action' }
          {
            title: '创建时间',
            dataIndex: 'createTime',
            align: "center",
            sorter: true,
            customRender: (text) => {
              return moment(text).format('YYYY-MM-DD')
            }
          ],
        columns2: [{
          title: '用户账号',
          align: 'center',
          dataIndex: 'username',
          width: 120
        },
          {
            title: '用户名称',
            align: 'center',
            width: 100,
            dataIndex: 'realname'
          },
          {
            title: '状态',
            align: 'center',
            width: 80,
            dataIndex: 'status_dictText'
          },
          {
            title: '操作',
            dataIndex: 'action',
            scopedSlots: { customRender: 'action' },
            align: 'center',
            width: 120
          }],
        // é«˜çº§æŸ¥è¯¢å‚æ•°
        superQueryParams2: '',
        // é«˜çº§æŸ¥è¯¢æ‹¼æŽ¥æ¡ä»¶
        superQueryMatchType2: 'and',
        url: {
          list: '/sys/role/list',
          delete: '/sys/role/delete',
          list2: '/sys/user/userRoleList',
          addUserRole: '/sys/user/addSysUserRole',
          delete2: '/sys/user/deleteUserRole',
          deleteBatch2: '/sys/user/deleteUserRoleBatch',
          exportXlsUrl: 'sys/role/exportXls',
          importExcelUrl: 'sys/role/importExcel'
        }
      }
    },
    computed: {
      importExcelUrl: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
      },
      leftColMd() {
        return this.selectedRowKeys1.length === 0 ? 24 : 12
      },
      rightColMd() {
        return this.selectedRowKeys1.length === 0 ? 0 : 12
      }
    },
    methods: {
      onSelectChange2(selectedRowKeys, selectionRows) {
        this.selectedRowKeys2 = selectedRowKeys
        this.selectionRows2 = selectionRows
      },
      onClearSelected2() {
        this.selectedRowKeys2 = []
        this.selectionRows2 = []
      },
      onClearSelected1() {
        this.selectedRowKeys1 = []
        this.selectionRows1 = []
      },
      onSelectChange1(selectedRowKeys, selectionRows) {
        this.rightcolval = 1
        this.selectedRowKeys1 = selectedRowKeys
        this.selectionRows1 = selectionRows
        this.model1 = Object.assign({}, selectionRows[0])
        console.log(this.model1)
        this.currentRoleId = selectedRowKeys[0]
        this.loadData2()
      },
      onClearSelected() {
      },
      getQueryParams2() {
        //获取查询条件
        let sqp = {}
        if (this.superQueryParams2) {
          sqp['superQueryParams'] = encodeURI(this.superQueryParams2)
          sqp['superQueryMatchType'] = this.superQueryMatchType2
        }
        var param = Object.assign(sqp, this.queryParam2, this.isorter2, this.filters2)
        param.field = this.getQueryField2()
        param.pageNo = this.ipagination2.current
        param.pageSize = this.ipagination2.pageSize
        return filterObj(param)
      },
      getQueryField2() {
        //TODO å­—段权限控制
        var str = 'id,'
        this.columns2.forEach(function(value) {
          str += ',' + value.dataIndex
        })
        return str
      },
      handleEdit2: function(record) {
        this.$refs.modalForm2.title = '编辑'
        this.$refs.modalForm2.roleDisabled = true
        this.$refs.modalForm2.edit(record)
      },
      handleAdd2: function() {
        if (this.currentRoleId == '') {
          this.$message.error('请选择一个角色!')
        } else {
          this.$refs.modalForm2.roleDisabled = true
          this.$refs.modalForm2.title = '新增'
          this.$refs.modalForm2.edit({activitiSync:'1',userIdentity:1,selectedroles:this.currentRoleId})
        }
      },
      modalFormOk2() {
        // æ–°å¢ž/修改 æˆåŠŸæ—¶ï¼Œé‡è½½åˆ—è¡¨
        this.loadData2()
      },
      loadData2(arg) {
        if (!this.url.list2) {
          this.$message.error('请设置url.list2属性!')
          return
        }
        //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
        if (arg === 1) {
          this.ipagination2.current = 1
        }
        if (this.currentRoleId === '') return
        let params = this.getQueryParams2()//查询条件
        params.roleId = this.currentRoleId
        this.loading2 = true
        getAction(this.url.list2, params).then((res) => {
          if (res.success) {
            this.dataSource2 = res.result.records
            this.ipagination2.total = res.result.total
            scopedSlots: { customRender: 'action' }
          }
          this.loading2 = false
        })
        ],
      columns2: [{
        title: '用户账号',
        align: 'center',
        dataIndex: 'username',
        width: 120
      },
      {
        title: '用户名称',
        align: 'center',
        width: 100,
        dataIndex: 'realname'
      },
      {
        title: '状态',
        align: 'center',
        width: 80,
        dataIndex: 'status_dictText'
      },
      },
      handleDelete1: function(id) {
        this.handleDelete(id)
        this.dataSource2 = []
        this.currentRoleId = ''
      },
      handleDelete2: function(id) {
        if (!this.url.delete2) {
          this.$message.error('请设置url.delete2属性!')
          return
      {
        title: '操作',
        dataIndex: 'action',
        scopedSlots: { customRender: 'action' },
        align: 'center',
        width: 120
      }],
      // é«˜çº§æŸ¥è¯¢å‚æ•°
      superQueryParams2: '',
      // é«˜çº§æŸ¥è¯¢æ‹¼æŽ¥æ¡ä»¶
      superQueryMatchType2: 'and',
      url: {
        list: '/sys/role/list',
        delete: '/sys/role/delete',
        list2: '/sys/user/userRoleList',
        addUserRole: '/sys/user/addSysUserRole',
        delete2: '/sys/user/deleteUserRole',
        deleteBatch2: '/sys/user/deleteUserRoleBatch',
        exportXlsUrl: 'sys/role/exportXls',
        importExcelUrl: 'sys/role/importExcel'
      }
    }
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
    },
    leftColMd() {
      return this.selectedRowKeys1.length === 0 ? 24 : 12
    },
    rightColMd() {
      return this.selectedRowKeys1.length === 0 ? 0 : 12
    }
  },
  methods: {
    onSelectChange2(selectedRowKeys, selectionRows) {
      this.selectedRowKeys2 = selectedRowKeys
      this.selectionRows2 = selectionRows
    },
    onClearSelected2() {
      this.selectedRowKeys2 = []
      this.selectionRows2 = []
    },
    onClearSelected1() {
      this.selectedRowKeys1 = []
      this.selectionRows1 = []
    },
    onSelectChange1(selectedRowKeys, selectionRows) {
      this.rightcolval = 1
      this.selectedRowKeys1 = selectedRowKeys
      this.selectionRows1 = selectionRows
      this.model1 = Object.assign({}, selectionRows[0])
      console.log(this.model1)
      this.currentRoleId = selectedRowKeys[0]
      this.loadData2()
    },
    onClearSelected() {
    },
    getQueryParams2() {
      //获取查询条件
      let sqp = {}
      if (this.superQueryParams2) {
        sqp['superQueryParams'] = encodeURI(this.superQueryParams2)
        sqp['superQueryMatchType'] = this.superQueryMatchType2
      }
      var param = Object.assign(sqp, this.queryParam2, this.isorter2, this.filters2)
      param.field = this.getQueryField2()
      param.pageNo = this.ipagination2.current
      param.pageSize = this.ipagination2.pageSize
      return filterObj(param)
    },
    getQueryField2() {
      //TODO å­—段权限控制
      var str = 'id,'
      this.columns2.forEach(function (value) {
        str += ',' + value.dataIndex
      })
      return str
    },
    handleEdit2: function (record) {
      this.$refs.modalForm2.title = '编辑'
      this.$refs.modalForm2.roleDisabled = true
      this.$refs.modalForm2.edit(record)
    },
    handleAdd2: function () {
      if (this.currentRoleId == '') {
        this.$message.error('请选择一个角色!')
      } else {
        this.$refs.modalForm2.roleDisabled = true
        this.$refs.modalForm2.title = '新增'
        this.$refs.modalForm2.edit({ activitiSync: '1', userIdentity: 1, selectedroles: this.currentRoleId })
      }
    },
    modalFormOk2() {
      // æ–°å¢ž/修改 æˆåŠŸæ—¶ï¼Œé‡è½½åˆ—è¡¨
      this.loadData2()
    },
    loadData2(arg) {
      if (!this.url.list2) {
        this.$message.error('请设置url.list2属性!')
        return
      }
      //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
      if (arg === 1) {
        this.ipagination2.current = 1
      }
      if (this.currentRoleId === '') return
      let params = this.getQueryParams2()//查询条件
      params.roleId = this.currentRoleId
      this.loading2 = true
      getAction(this.url.list2, params).then((res) => {
        if (res.success) {
          this.dataSource2 = res.result.records
          this.ipagination2.total = res.result.total
        }
        this.loading2 = false
      })
    },
    handleDelete1: function (id) {
      this.handleDelete(id)
      this.dataSource2 = []
      this.currentRoleId = ''
    },
    handleDelete2: function (id) {
      if (!this.url.delete2) {
        this.$message.error('请设置url.delete2属性!')
        return
      }
      var that = this
      deleteAction(that.url.delete2, { roleId: this.currentRoleId, userId: id }).then((res) => {
        if (res.success) {
          that.$message.success(res.message)
          that.loadData2()
        } else {
          that.$message.warning(res.message)
        }
      })
    },
    batchDel2: function () {
      if (!this.url.deleteBatch2) {
        this.$message.error('请设置url.deleteBatch2属性!')
        return
      }
      if (this.selectedRowKeys2.length <= 0) {
        // this.$message.warning('请选择一条记录!')
        this.$notification.warning({
          message: '消息',
          description: "请选择一条记录"
        });
        return
      } else {
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys2.length; a++) {
          ids += this.selectedRowKeys2[a] + ','
        }
        var that = this
        deleteAction(that.url.delete2, { roleId: this.currentRoleId, userId: id }).then((res) => {
          if (res.success) {
            that.$message.success(res.message)
            that.loadData2()
          } else {
            that.$message.warning(res.message)
        console.log(this.currentDeptId)
        this.$confirm({
          title: '确认删除',
          content: '是否删除选中数据?',
          onOk: function () {
            deleteAction(that.url.deleteBatch2, { roleId: that.currentRoleId, userIds: ids }).then((res) => {
              if (res.success) {
                that.$message.success(res.message)
                that.loadData2()
                that.onClearSelected()
              } else {
                that.$message.warning(res.message)
              }
            })
          }
        })
      },
      batchDel2: function() {
      }
    },
    selectOK(data) {
      let params = {}
      params.roleId = this.currentRoleId
      params.userIdList = []
      for (var a = 0; a < data.length; a++) {
        params.userIdList.push(data[a])
      }
      console.log(params)
      postAction(this.url.addUserRole, params).then((res) => {
        if (res.success) {
          this.loadData2()
          this.$message.success(res.message)
        } else {
          this.$message.warning(res.message)
        }
      })
    },
        if (!this.url.deleteBatch2) {
          this.$message.error('请设置url.deleteBatch2属性!')
          return
        }
        if (this.selectedRowKeys2.length <= 0) {
          // this.$message.warning('请选择一条记录!')
          this.$notification.warning({
            message:'消息',
            description:"请选择一条记录"
          });
          return
        } else {
          var ids = ''
          for (var a = 0; a < this.selectedRowKeys2.length; a++) {
            ids += this.selectedRowKeys2[a] + ','
          }
          var that = this
          console.log(this.currentDeptId)
          this.$confirm({
            title: '确认删除',
            content: '是否删除选中数据?',
            onOk: function() {
              deleteAction(that.url.deleteBatch2, { roleId: that.currentRoleId, userIds: ids }).then((res) => {
                if (res.success) {
                  that.$message.success(res.message)
                  that.loadData2()
                  that.onClearSelected()
                } else {
                  that.$message.warning(res.message)
                }
              })
            }
          })
        }
      },
      selectOK(data) {
        let params = {}
        params.roleId = this.currentRoleId
        params.userIdList = []
        for (var a = 0; a < data.length; a++) {
          params.userIdList.push(data[a])
        }
        console.log(params)
        postAction(this.url.addUserRole, params).then((res) => {
          if (res.success) {
            this.loadData2()
            this.$message.success(res.message)
          } else {
            this.$message.warning(res.message)
          }
        })
      },
      handleAddUserRole() {
        if (this.currentRoleId == '') {
          this.$message.error('请选择一个角色!')
        } else {
          this.$refs.selectUserModal.visible = true
        }
      },
      handleOpen(record) {
        this.rightcolval = 1
        this.selectedRowKeys1 = [record.id]
        this.model1 = Object.assign({}, record)
        this.currentRoleId = record.id
        this.onClearSelected2()
        this.loadData2()
      },
      /*handleEdit: function(record) {
        if (this.currentRoleId == '') {
          this.$message.error('请选择一个角色!')
        } else {
          this.$refs.modalForm.edit(record)
          this.$refs.modalForm.title = '编辑'
        }
      },*/
      searchQuery2() {
        this.loadData2(1)
      },
      searchReset2() {
        this.queryParam2 = {}
        this.loadData2(1)
      },
      handleTableChange2(pagination, filters, sorter) {
        //分页、排序、筛选变化时触发
        //TODO ç­›é€‰
        if (Object.keys(sorter).length > 0) {
          this.isorter2.column = sorter.field
          this.isorter2.order = 'ascend' == sorter.order ? 'asc' : 'desc'
        }
        this.ipagination2 = pagination
        this.loadData2()
      },
      hideUserList(){
        //this.rightcolval = 0
        this.selectedRowKeys1 = []
      },
      handlePerssion(roleId){
        this.$refs.modalUserRole.show(roleId);
      },
    }
    handleAddUserRole() {
      if (this.currentRoleId == '') {
        this.$message.error('请选择一个角色!')
      } else {
        this.$refs.selectUserModal.visible = true
      }
    },
    handleOpen(record) {
      this.rightcolval = 1
      this.selectedRowKeys1 = [record.id]
      this.model1 = Object.assign({}, record)
      this.currentRoleId = record.id
      this.onClearSelected2()
      this.loadData2()
    },
    /*handleEdit: function(record) {
      if (this.currentRoleId == '') {
        this.$message.error('请选择一个角色!')
      } else {
        this.$refs.modalForm.edit(record)
        this.$refs.modalForm.title = '编辑'
      }
    },*/
    searchQuery2() {
      this.loadData2(1)
    },
    searchReset2() {
      this.queryParam2 = {}
      this.loadData2(1)
    },
    handleTableChange2(pagination, filters, sorter) {
      //分页、排序、筛选变化时触发
      //TODO ç­›é€‰
      if (Object.keys(sorter).length > 0) {
        this.isorter2.column = sorter.field
        this.isorter2.order = 'ascend' == sorter.order ? 'asc' : 'desc'
      }
      this.ipagination2 = pagination
      this.loadData2()
    },
    hideUserList() {
      //this.rightcolval = 0
      this.selectedRowKeys1 = []
    },
    handlePerssion(roleId) {
      this.$refs.modalUserRole.show(roleId);
    },
  }
}
</script>
<style scoped>
  /** Button按钮间距 */
  .ant-btn {
    margin-left: 8px
  }
/** Button按钮间距 */
.ant-btn {
  margin-left: 8px;
}
</style>
src/views/system/modules/UserRoleModalNew.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,245 @@
<template>
  <a-modal
    :title="title"
    :width="650"
    :visible="visible"
    :maskClosable="false"
    :confirmLoading="confirmLoading"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
  >
    <a-form>
      <a-form-item label='所拥有的权限'>
        <a-tree
          checkable
          @check="onCheck"
          :checkedKeys="checkedKeys"
          :treeData="treeData"
          @expand="onExpand"
          @select="onTreeNodeSelect"
          :selectedKeys="selectedKeys"
          :expandedKeys="expandedKeysss"
          :checkStrictly="checkStrictly"
        >
          <span
            slot="hasDatarule"
            slot-scope="{slotTitle,ruleFlag}"
          >
            {{ slotTitle }}<a-icon
              v-if="ruleFlag"
              type="align-left"
              style="margin-left:5px;color: red;"
            ></a-icon>
          </span>
        </a-tree>
      </a-form-item>
    </a-form>
    <div class="drawer-bootom-button">
      <a-dropdown
        style="float: left"
        :trigger="['click']"
        placement="topCenter"
      >
        <a-menu slot="overlay">
          <a-menu-item
            key="1"
            @click="switchCheckStrictly(1)"
          >父子关联</a-menu-item>
          <a-menu-item
            key="2"
            @click="switchCheckStrictly(2)"
          >取消关联</a-menu-item>
          <a-menu-item
            key="3"
            @click="checkALL"
          >全部勾选</a-menu-item>
          <a-menu-item
            key="4"
            @click="cancelCheckALL"
          >取消全选</a-menu-item>
          <a-menu-item
            key="5"
            @click="expandAll"
          >展开所有</a-menu-item>
          <a-menu-item
            key="6"
            @click="closeAll"
          >合并所有</a-menu-item>
        </a-menu>
        <a-button>
          æ ‘操作 <a-icon type="up" />
        </a-button>
      </a-dropdown>
      <a-popconfirm
        title="确定放弃编辑?"
        @confirm="close"
        okText="确定"
        cancelText="取消"
      >
        <a-button style="margin-right: .8rem">取消</a-button>
      </a-popconfirm>
    </div>
    <template slot="footer">
      <a-button
        @click="handleSubmit(false)"
        type="primary"
        :loading="loading"
        ghost
        style="margin-right: 0.8rem"
      >仅保存</a-button>
      <a-button
        @click="handleSubmit(true)"
        type="primary"
        :loading="loading"
      >保存并关闭</a-button>
    </template>
    <role-datarule-modal ref="datarule"></role-datarule-modal>
  </a-modal>
</template>
<script>
import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '@/api/api'
import RoleDataruleModal from './RoleDataruleModal.vue'
export default {
  name: "RoleModal",
  components: {
    RoleDataruleModal
  },
  data() {
    return {
      roleId: "",
      treeData: [],
      defaultCheckedKeys: [],
      checkedKeys: [],
      expandedKeysss: [],
      allTreeKeys: [],
      autoExpandParent: true,
      checkStrictly: true,
      title: "角色权限配置",
      visible: false,
      loading: false,
      selectedKeys: []
    }
  },
  methods: {
    onTreeNodeSelect(id) {
      if (id && id.length > 0) {
        this.selectedKeys = id
      }
      this.$refs.datarule.show(this.selectedKeys[0], this.roleId)
    },
    onCheck(o) {
      if (this.checkStrictly) {
        this.checkedKeys = o.checked;
      } else {
        this.checkedKeys = o
      }
    },
    show(roleId) {
      this.roleId = roleId
      this.visible = true;
    },
    close() {
      this.reset()
      this.$emit('close');
      this.visible = false;
    },
    onExpand(expandedKeys) {
      this.expandedKeysss = expandedKeys;
      this.autoExpandParent = false
    },
    reset() {
      this.expandedKeysss = []
      this.checkedKeys = []
      this.defaultCheckedKeys = []
      this.loading = false
    },
    expandAll() {
      this.expandedKeysss = this.allTreeKeys
    },
    closeAll() {
      this.expandedKeysss = []
    },
    checkALL() {
      this.checkedKeys = this.allTreeKeys
    },
    cancelCheckALL() {
      //this.checkedKeys = this.defaultCheckedKeys
      this.checkedKeys = []
    },
    switchCheckStrictly(v) {
      if (v == 1) {
        this.checkStrictly = false
      } else if (v == 2) {
        this.checkStrictly = true
      }
    },
    handleCancel() {
      this.close()
    },
    handleSubmit(exit) {
      let that = this;
      let params = {
        roleId: that.roleId,
        permissionIds: that.checkedKeys.join(","),
        lastpermissionIds: that.defaultCheckedKeys.join(","),
      };
      that.loading = true;
      console.log("请求参数:", params);
      saveRolePermission(params).then((res) => {
        if (res.success) {
          that.$message.success(res.message);
          that.loading = false;
          if (exit) {
            that.close()
          }
        } else {
          that.$message.error(res.message);
          that.loading = false;
          if (exit) {
            that.close()
          }
        }
        this.loadData();
      })
    },
    loadData() {
      queryTreeListForRole().then((res) => {
        this.treeData = res.result.treeList
        this.allTreeKeys = res.result.ids
        queryRolePermission({ roleId: this.roleId }).then((res) => {
          this.checkedKeys = [...res.result];
          this.defaultCheckedKeys = [...res.result];
          this.expandedKeysss = this.allTreeKeys;
          console.log(this.defaultCheckedKeys)
        })
      })
    }
  },
  watch: {
    visible() {
      if (this.visible) {
        this.loadData();
      }
    }
  }
}
</script>
<style lang="less" scoped>
.drawer-bootom-button {
  position: absolute;
  bottom: 0;
  width: 100%;
  border-top: 1px solid #e8e8e8;
  padding: 10px 16px;
  text-align: right;
  left: 0;
  background: #fff;
  border-radius: 0 0 2px 2px;
}
</style>
src/views/user/Login.vue
@@ -45,6 +45,8 @@
import LoginAccount from './LoginAccount'
import LoginPhone from './LoginPhone'
import store from '@/store'
import { getAction } from '../../api/manage'
export default {
    components: {
@@ -52,7 +54,8 @@
      TwoStepCaptcha,
      // ThirdLogin,
      LoginAccount,
      LoginPhone
      LoginPhone,
      store
    },
    data () {
      return {
@@ -65,6 +68,9 @@
          key:"",
          iv:"",
        },
        url:{
          getPrimaryInfo:"/sys/sysAnnouncementSend/getPrimaryInfo"
        }
      }
    },
    created() {
@@ -113,6 +119,18 @@
          message: '欢迎',
          description: `${timeFix()},欢迎回来`,
        });
        var userId = store.getters.userInfo.id;
        let that = this;
        getAction(this.url.getPrimaryInfo,{userId:userId}).then(res=>{
            if(res.success){
                for(var i=0;i<res.result.length;i++){
                  that.$notification.success({
                    message: '最新未读消息【'+res.result[i].msgCategory+'】',
                    description:res.result[i].msgContent,
                  });
                }
            }
        })
        // this.$refs.loginSelect.show(loginResult)
      },
      //登录后台失败
@@ -141,6 +159,7 @@
          message: '欢迎',
          description: `${timeFix()},欢迎回来`,
        });
      },
      stepCaptchaSuccess () {