浏览代码

Merge remote-tracking branch 'origin/master'

32197351@qq.com 1 年之前
父节点
当前提交
3200ac3aef

+ 3 - 3
itdmWeb/package.json

@@ -48,9 +48,9 @@
     "vue-splitpane": "^1.0.4",
     "vuedraggable": "^2.20.0",
     "vuex": "^3.1.0",
-    "vxe-table": "2.9.13",
-    "vxe-table-plugin-antd": "1.8.10",
-    "xe-utils": "2.4.8",
+    "vxe-table": "^3.6.13",
+    "vxe-table-plugin-antd": "^3.0.7",
+    "xe-utils": "^3.5.11",
     "xss": "^1.0.13"
   },
   "devDependencies": {

+ 7 - 1
itdmWeb/src/api/api.js

@@ -81,6 +81,10 @@ const delBaojing = (params)=>deleteAction("/itdm/voice/delete",params);
 const confirmPa = (params)=>getAction("/itdmMima/itdmMima/panduan",params);
 // 折线图初始化
 const listGraph = (params)=>getAction("/second/screen/chushihua/{id}",params);
+// 首页数据
+const listBdc = (params)=>getAction("/itdmFirstPage/getFrstPageTaskNum",params);
+// 首页列表
+const listBdc2 = (params)=>getAction("/itdmFirstPage/itdmTask/list",params);
 
 
 //日志管理
@@ -201,7 +205,9 @@ export {
   getWeituoInfoListByClient,
   delBaojing,
   confirmPa,
-  listGraph
+  listGraph,
+  listBdc,
+  listBdc2
 }
 
 

+ 1 - 1
itdmWeb/src/components/jeecg/JVxeTable/components/JVxeTable.js

@@ -12,7 +12,7 @@ import JVxeSubPopover from './JVxeSubPopover'
 import JVxeDetailsModal from './JVxeDetailsModal'
 import JVxePagination from './JVxePagination'
 import { cloneObject, getVmParentByName, pushIfNotExist, randomString, simpleDebounce } from '@/utils/util'
-import { UtilTools } from 'vxe-table/packages/tools/src/utils'
+import { UtilTools } from 'vxe-table/packages/tools/utils'
 import { getNoAuthCols } from '@/utils/authFilter'
 
 export default {

+ 6 - 0
itdmWeb/src/main.js

@@ -47,6 +47,12 @@ import '@/assets/less/JAreaLinkage.less'
 import VueAreaLinkage from 'vue-area-linkage'
 import '@/components/jeecg/JVxeTable/install'
 import '@/components/JVxeCells/install'
+
+// import Vue from 'vue'
+import VXETable from 'vxe-table'
+import 'vxe-table/lib/style.css'
+Vue.use(VXETable)
+
 //表单验证
 import { rules } from '@/utils/rules'
 Vue.prototype.rules = rules

+ 4 - 4
itdmWeb/src/views/dashboard/Analysis.vue

@@ -6,9 +6,9 @@
     <div style="width: 100%;text-align: right;margin-top: 20px">
       请选择首页样式:
       <a-radio-group v-model="indexStyle">
-        <a-radio :value="1">统计图表</a-radio>
-        <a-radio :value="2">统计图表2</a-radio>
-        <a-radio :value="3">任务表格</a-radio>
+        <!-- <a-radio :value="1">统计图表</a-radio>
+        <a-radio :value="2">统计图表2</a-radio> -->
+        <!-- <a-radio :value="3">任务表格</a-radio> -->
       </a-radio-group>
     </div>
   </div>
@@ -28,7 +28,7 @@
     },
     data() {
       return {
-        indexStyle:1
+        indexStyle:2
       }
     },
     created() {

+ 213 - 150
itdmWeb/src/views/dashboard/IndexBdc.vue

@@ -2,127 +2,102 @@
   <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-icon type="info-circle-o" />
-          </a-tooltip>
-          <div>
-            <mini-area :data-source="chartData.sll" />
+        <div @click="zhengchang()">
+          <chart-card :loading="loading" total="所有任务" class="suoyou">
+          </chart-card>
+          <span class="recent">[近30天]</span>
+          <div class="numRecent">
+            <div style="font-size:35px; color: #3293f6;">{{listBdc.totalNum}}</div>
+            <div style="font-size:20px; padding-top:10%; padding-left:3px;">项</div>
           </div>
-          <template slot="footer">今日受理量:<span>{{ todaySll }}</span></template>
-        </chart-card>
+        </div>
       </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-icon type="info-circle-o" />
-          </a-tooltip>
-          <div>
-            <mini-area :data-source="chartData.bjl"/>
+        <div @click="zhengchang(0)">
+          <chart-card :loading="loading" total="待办" class="daiban">
+          </chart-card>
+          <span class="recent2">[近30天]</span>
+          <div class="numRecent">
+            <div style="font-size:35px; color: #e91111;">{{listBdc.daibanNum}}</div>
+            <div style="font-size:20px; padding-top:10%; padding-left:3px;">项</div>
           </div>
-          <template slot="footer">今日办结量:<span>{{ todayBjl }}</span></template>
-        </chart-card>
+        </div>
       </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-icon type="info-circle-o" />
-          </a-tooltip>
-          <div>
-            <mini-bar :datasource="chartData.isll" :height="50"/>
+        <div @click="zhengchang(1)">
+          <chart-card :loading="loading" total="进行中" class="jinxing">
+          </chart-card>
+          <span class="recent3">[近30天]</span>
+          <div class="numRecent">
+            <div style="font-size:35px; color: #f9c04a;">{{listBdc.jinxingNum}}</div>
+            <div style="font-size:20px; padding-top:10%; padding-left:3px;">项</div>
           </div>
-          <template slot="footer">用户今日受理量:<span>{{ todayISll }}</span></template>
-        </chart-card>
+        </div>
       </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-icon type="info-circle-o" />
-          </a-tooltip>
-          <div>
-            <mini-bar :datasource="chartData.ibjl" :height="50"/>
+        <div @click="zhengchang(2)">
+          <chart-card :loading="loading" total="已完成" class="wancheng">
+          </chart-card>
+          <span class="recent3">[近30天]</span>
+          <div class="numRecent">
+            <div style="font-size:35px; color: #18c679;">{{listBdc.wanchengNum}}</div>
+            <div style="font-size:20px; padding-top:10%; padding-left:3px;">项</div>
           </div>
-          <template slot="footer">用户今日办结量:<span>{{ todayIBjl }}</span></template>
-        </chart-card>
+        </div>
       </a-col>
     </a-row>
 
-    <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}">
+    <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}" class="list">
       <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">
-                <index-bar title="受理量统计" />
-              </a-col>
-              <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}">
-                  <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>
-                    </a-row>
-                  </div>
-                </a-card>
-
-              </a-col>
-            </a-row>
-          </a-tab-pane>
-
-          <a-tab-pane tab="交互监管" key="2">
+          <a-tab-pane loading="true" :tab="tab" key="1">
             <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>
-              <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}">
-                  <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>
-                    </a-row>
+              <a-col :xl="18" :lg="12" :md="12" :sm="24" :xs="24">
+                <a-table
+                  style="padding-left: 20px;"
+                  ref="tableBds"
+                  size="small"
+                  rowKey="id"
+                  :scroll="{ y: 'calc(100vh - 490px)' }"
+                  :columns="columnsBds"
+                  :loading="loading2"
+                  :dataSource="tableDataBds"
+                  :pagination="ipagination2"
+                  @change="tableChange2">
+
+                  <div slot="taskStatus" slot-scope="text, record">
+                    <!-- <span v-if="record.taskStatus ==0" style="color: #e91111;">待办</span>
+                    <span v-if="record.taskStatus ==1" style="color: #f9c04a;">进行中</span>
+                    <span v-if="record.taskStatus ==2" style="color: #18c679;">完成</span> -->
+                    <span v-if="record.taskStatus ==0">待办</span>
+                    <span v-if="record.taskStatus ==1">进行中</span>
+                    <span v-if="record.taskStatus ==2">完成</span>
                   </div>
-                </a-card>
-
-              </a-col>
-            </a-row>
-          </a-tab-pane>
-
-          <a-tab-pane tab="存储监管" key="4">
-            <a-row>
-              <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>
+                </a-table>
+                <!-- <itdm-task-list></itdm-task-list> -->
+                <!-- <index-bar title="受理量统计" /> -->
+                <!-- <a-table :dataSource="dataSource2" size="default" rowKey="id" :columns="columns2" :pagination="ipagination2" @change="tableChange2">
+                  <template slot="flowRate" slot-scope="text, record">
+                    <span style="color: red;">{{ record.flowRate }}小时</span>
                   </template>
-                </a-row>
+                </a-table> -->
               </a-col>
-
-              <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}">
-                  <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>
-                    </a-row>
+              <a-col :xl="4" :lg="12" :md="12" :sm="24" :xs="24">
+                <a-card title="便捷导航" class="daoHang">
+                  <div style="margin-bottom: 15px;">
+                    <trend flag>
+                      <a slot="term" @click="$router.push({path:'/itdmGongdanMaster/itdmGongdanMasterList'})">拆解工单</a>
+                    </trend>
+                  </div>
+                  <div style="margin-bottom: 15px;">
+                    <trend flag>
+                      <a slot="term" @click="$router.push({path:'/gongdandetail/itdmGongdanDetailList'})">工单确认</a>
+                    </trend>
+                  </div>
+                  <div>
+                    <trend flag>
+                      <a slot="term" @click="$router.push({path:'/gongdanshuju/ItdmGongdanShujuList'})">数据确认</a>
+                    </trend>
                   </div>
                 </a-card>
 
@@ -135,41 +110,6 @@
       </div>
     </a-card>
 
-    <a-row :gutter="12">
-      <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-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-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">
-                <span style="color: red;">{{ record.flowRate }}小时</span>
-              </template>
-            </a-table>
-          </a-tab-pane>
-
-        </a-tabs>
-
-
-      </a-card>
-    </a-row>
-
   </div>
 </template>
 
@@ -183,6 +123,9 @@
   import IndexBar from '@/components/chart/IndexBar'
   import BarMultid from '@/components/chart/BarMultid'
   import DashChartDemo from '@/components/chart/DashChartDemo'
+  import Trend from '@/components/Trend'
+  import {listBdc, listBdc2} from '@/api/api'
+import ItdmTaskList from '../module-iTDM/itdmFirstPage/ItdmTaskList.vue'
 
   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 },
@@ -300,11 +243,15 @@
       MiniBar,
       DashChartDemo,
       BarMultid,
-      IndexBar
+      IndexBar,
+      Trend,
+        ItdmTaskList
     },
     data() {
       return {
         loading: true,
+        loading2: false,
+        listBdc: {},
         cardCount:{
           sll:100,
           bjl:87,
@@ -362,21 +309,78 @@
         },
         ipagination2:{
           current: 1,
-          pageSize: 5,
+          pageSize: 10,
           pageSizeOptions: ['10', '20', '30'],
           showTotal: (total, range) => {
             return range[0] + "-" + range[1] + " 共" + total + "条"
           },
           showQuickJumper: true,
-          showSizeChanger: true,
+          // showSizeChanger: true,
           total: 0,
         },
         indexRegisterType:"转移登记",
-        indexBottomTab:"1"
+        indexBottomTab:"1",
+        // 任务列表
+        columnsBds: [
+          { title:'委托单位', align:"center", dataIndex: 'weituoClient' },
+          { title:'委托编号', align:"center", dataIndex: 'weituoNo' },
+          { title:'内容', align:"center", dataIndex: 'taskContent' },
+          { title:'待办角色', align:"center", dataIndex: 'taskRole' },
+          { title:'待办人员', align:"center", dataIndex: 'taskUser' },
+          { title:'任务状态', align:"center", dataIndex: 'taskStatus', scopedSlots: { customRender: 'taskStatus' } },
+          // { title:'关联委托id', align:"center", dataIndex: 'weituoId_dictText' },
+        ],
+        tableDataBds: [],
+        tab: '所有任务',
+        queryParam: {
+          taskStatus: '',
+        },
 
       }
     },
+    created() {
+      this.getListBdc()
+      this.zhengchang()
+      // this.loadDataSource1()
+      // this.loadDataSource2()
+      setTimeout(() => {
+        this.loading = !this.loading
+      }, 1000)
+    },
     methods:{
+      // 获取首页数据
+      getListBdc(){
+        listBdc().then( res => {
+          console.log(11111,res)
+          this.listBdc = res
+        })
+      },
+      // 获取首页列表
+      zhengchang(num){
+        console.log(num)
+        this.loading2 = true
+        if (num == undefined) {
+          this.tab = '所有任务'
+          this.queryParam.taskStatus = ''
+        }
+        if (num == 0) {
+          this.tab = '待办'
+          this.queryParam.taskStatus = 0
+        }
+        if (num == 1) {
+          this.tab = '进行中'
+          this.queryParam.taskStatus = 1
+        }
+        if (num == 2) {
+          this.tab = '完成'
+          this.queryParam.taskStatus = 2
+        }
+        listBdc2(this.queryParam).then( res => {
+          console.log(2222,res)
+          this.tableDataBds = res.result
+          this.loading2 = false
+        })
+      },
       goPage(){
         this.$message.success("根据业务自行处理跳转页面!")
       },
@@ -391,12 +395,13 @@
       tableChange1(pagination){
         this.ipagination1.current = pagination.current
         this.ipagination1.pageSize = pagination.pageSize
-        this.queryTimeoutInfo()
+        // this.queryTimeoutInfo()
       },
       tableChange2(pagination){
         this.ipagination2.current = pagination.current
         this.ipagination2.pageSize = pagination.pageSize
-        this.queryNodeTimeoutInfo()
+        // this.queryNodeTimeoutInfo()
+        this.zhengchang()
       },
       getFlowRateNumber(value){
         return Number(value)
@@ -435,18 +440,76 @@
           return item.type==this.indexRegisterType
         })
       }
-    },
-    created() {
-      this.loadDataSource1()
-      this.loadDataSource2()
-      setTimeout(() => {
-        this.loading = !this.loading
-      }, 1000)
     }
   }
 </script>
 
 <style lang="less" scoped>
+::v-deep .total{
+    width: 50%;
+  }
+  .recent{
+    position: absolute;
+    top: 25%;
+    left: 42%;
+  }
+  .recent2{
+    position: absolute;
+    top: 25%;
+    left: 26%;
+  }
+  .recent3{
+    position: absolute;
+    top: 25%;
+    left: 34%;
+  }
+  .numRecent{
+    height: 30%;
+    width: 40%;
+    // background-color: aquamarine;
+    position: absolute;
+    top: 12%;
+    right: 10%;
+    display: flex;
+    justify-content: flex-end;
+  }
+  .daoHang {
+    width: 300px;
+    height: 200px;
+    border-radius: 5px;
+    margin-left: 40px;
+  }
+  ::v-deep .ant-card{
+    border-radius: 10px !important;
+    padding-bottom: 20px;
+  }
+  ::v-deep .ant-card-head{
+    background-color: #c2e6ff85;
+    border-radius: 10px !important;
+    font-size: 20px;
+  }
+  .suoyou{
+    box-shadow: 0 10px 15px  rgba(212, 211, 212, 0.445);
+  }
+  .daiban{
+    background-color: rgb(255, 246, 246);
+    box-shadow: 0 10px 15px  rgba(255, 208, 208, 0.552);
+  }
+  // .daiban:hover {
+	// 	// box-shadow: 0 16px 32px 0 rgba(48, 55, 66, 0.15);/* 盒子悬浮时阴影 */
+  //   // box-shadow: 0 10px 15px  rgba(255, 182, 182, 0.552);
+	// }
+  .jinxing{
+    background-color: rgb(255, 253, 244);
+    box-shadow: 0 10px 15px  rgba(254, 233, 189, 0.552);
+  }
+  .wancheng{
+    background-color: rgb(250, 253, 244);
+    box-shadow: 0 10px 15px  rgba(194, 228, 205, 0.515);
+  }
+  // .list {
+  //   height: 480px;
+  // }
   .extra-wrapper {
     line-height: 55px;
     padding-right: 24px;

+ 86 - 101
itdmWeb/src/views/dashboard/IndexChart.vue

@@ -1,64 +1,57 @@
 <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>
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card :loading="loading" total="所有任务">
           <div>
-            <trend flag="up" style="margin-right: 16px;">
-              <span slot="term">周同比</span>
-              12%
+            <trend flag style="margin-right: 16px;">
+              <div @click="zhengchang(1)">
+                <span slot="term">待办</span>
+                12
+              </div>
             </trend>
-            <trend flag="down">
-              <span slot="term">日同比</span>
-              11%
+            <trend flag style="margin-right: 16px;">
+              <div @click="zhengchang(2)">
+                <span slot="term">进行中</span>
+                13
+              </div>
+            </trend>
+            <trend flag>
+              <div @click="zhengchang(3)">
+                <span slot="term">完成</span>
+                11
+              </div>
             </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>
+        <span class="recent">[近30天]</span>
+        <div class="numRecent">
+          <div style="font-size:35px; color: #e91111;">123</div>
+          <div style="font-size:20px; padding-top:8%; padding-left:5px;">项</div>
+        </div>
       </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>
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card :loading="loading" total="待办任务">
+
         </chart-card>
+        <div class="numRecent">
+          <div style="font-size:35px; color: #e91111;">12</div>
+          <div style="font-size:20px; padding-top:8%; padding-left:5px;">项</div>
+        </div>
       </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>
+      <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+        <chart-card :loading="loading" total="快捷入口">
           <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 flag style="margin-right: 16px;">
+              <a slot="term" @click="$router.push({path:'/itdmGongdanMaster/itdmGongdanMasterList'})">拆解工单</a>
             </trend>
-            <trend flag="up">
-              <span slot="term">日环比</span>
-              80%
+            <trend flag style="margin-right: 16px;">
+              <a slot="term" @click="$router.push({path:'/gongdandetail/itdmGongdanDetailList'})">工单确认</a>
             </trend>
-          </template>
+            <trend flag>
+              <a slot="term" @click="$router.push({path:'/gongdanshuju/ItdmGongdanShujuList'})">数据确认</a>
+            </trend>
+          </div>
         </chart-card>
       </a-col>
     </a-row>
@@ -66,16 +59,7 @@
     <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-tab-pane loading="true" :tab="tab" key="1">
             <a-row>
               <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24">
                 <bar title="销售额排行" :dataSource="barData"/>
@@ -85,53 +69,9 @@
               </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-row>
-            <a-col :span="6">
-              <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-spin>
-            </a-col>
-            <a-col :span="6">
-              <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-spin>
-            </a-col>
-            <a-col :span="6">
-              <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-spin>
-            </a-col>
-          </a-row>
-          <line-chart-multid :fields="visitFields" :dataSource="visitInfo"></line-chart-multid>
-        </a-card>
-      </a-col>
-    </a-row>
   </div>
 </template>
 
@@ -182,6 +122,7 @@
     data() {
       return {
         loading: true,
+        tab: '待办',
         center: null,
         rankList,
         barData,
@@ -213,11 +154,55 @@
            }
          })
       },
+      zhengchang(num){
+        console.log(num)
+        if (num == 1) {
+          this.tab = '待办'
+        }
+        if (num == 2) {
+          this.tab = '进行中'
+        }
+        if (num == 3) {
+          this.tab = '完成'
+        }
+        // this.deviceOptions = []
+        // console.log(this.deviceOptions)
+        // var deOption = this.allDevOptions
+        // if( !num && num == undefined ){
+        //   this.deviceOptions = this.allDevOptions
+        //   return false
+        // }
+        // for (var i = 0; i < deOption.length; i++) {
+        //   console.log(deOption[i].deviceStatus)
+        //   if(deOption[i].deviceStatus == num){
+        //     this.deviceOptions.push(deOption[i])
+        //     console.log(this.deviceOptions)
+        //   }
+        // }
+      },
     }
   }
 </script>
 
 <style lang="less" scoped>
+  ::v-deep .total{
+    width: 50%;
+  }
+  .recent{
+    position: absolute;
+    top: 29%;
+    left: 32%;
+  }
+  .numRecent{
+    height: 30%;
+    width: 40%;
+    // background-color: aquamarine;
+    position: absolute;
+    top: 12%;
+    right: 8%;
+    display: flex;
+    justify-content: flex-end;
+  }
   .circle-cust{
     position: relative;
     top: 28px;

+ 10 - 9
itdmWeb/src/views/module-iTDM/gongdanshuju/ItdmGongdanShujuList.vue

@@ -27,7 +27,7 @@
             </a-col>
             <a-col :xl="6" :lg="7" :md="8" :sm="24">
               <a-form-item label="频次">
-                <a-input placeholder="请输入频次" v-model="queryParam.pinci"></a-input>
+                <a-input placeholder="请输入频次(分钟)" v-model="queryParam.pinci"></a-input>
               </a-form-item>
             </a-col>
           </template>
@@ -172,11 +172,11 @@
           //   align:"center",
           //   dataIndex: 'woId'
           // },
-          // {
-          //   title:'试验类型',
-          //   align:"center",
-          //   dataIndex: 'shiyanType_dictText'
-          // },
+          {
+            title:'试验类型',
+            align:"center",
+            dataIndex: 'shiyanType_dictText'
+          },
           // {
           //   title:'试验开始时间',
           //   align:"center",
@@ -268,10 +268,11 @@
       create(){
         httpAction("/itdmgomgongdanshuju/ItdmGongdanshuju/create",this.queryParam,"post").then((res)=>{
           if(res.success){
-            that.$message.success(res.message);
-            that.$emit('ok');
+            console.log(res)
+            this.$message.success(res.message);
+            this.modalFormOk()
           }else{
-            that.$message.warning(res.message);
+            this.$message.warning(res.message);
           }
            this.searchReset();
         })

+ 4 - 4
itdmWeb/src/views/module-iTDM/itdmAlarmTotal/ItdmAlarmTotalList.vue

@@ -18,10 +18,10 @@
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
+<!--              <a @click="handleToggleSearch" style="margin-left: 8px">-->
+<!--                {{ toggleSearchStatus ? '收起' : '展开' }}-->
+<!--                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
+<!--              </a>-->
             </span>
           </a-col>
         </a-row>

+ 239 - 0
itdmWeb/src/views/module-iTDM/itdmFirstPage/ItdmTaskList.vue

@@ -0,0 +1,239 @@
+<template>
+  <a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="内容">
+              <a-input placeholder="请输入内容" v-model="queryParam.taskContent"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="任务状态">
+              <j-dict-select-tag placeholder="请选择任务状态(0待办1进行2完成)" v-model="queryParam.taskStatus" dictCode="task_status"/>
+            </a-form-item>
+          </a-col>
+          <template v-if="toggleSearchStatus">
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="待办角色">
+                <a-input placeholder="请输入待办角色" v-model="queryParam.taskRole"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="待办人员">
+                <a-input placeholder="请输入待办人员" v-model="queryParam.taskUser"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="关联委托id">
+                <a-input placeholder="请输入关联委托id" v-model="queryParam.weituoId"></a-input>
+              </a-form-item>
+            </a-col>
+          </template>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+              <a @click="handleToggleSearch" style="margin-left: 8px">
+                {{ toggleSearchStatus ? '收起' : '展开' }}
+                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
+              </a>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+      <a-button type="primary" icon="download" @click="handleExportXls('任务表')">导出</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>
+      <!-- 高级查询区域 -->
+      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+      <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">{{ selectedRowKeys.length }}</a>项
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        :scroll="{x:true}"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(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="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+      </a-table>
+    </div>
+
+    <itdm-task-modal ref="modalForm" @ok="modalFormOk"></itdm-task-modal>
+  </a-card>
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import ItdmTaskModal from './modules/ItdmTaskModal'
+  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+
+  export default {
+    name: 'ItdmTaskList',
+    mixins:[JeecgListMixin, mixinDevice],
+    components: {
+      ItdmTaskModal
+    },
+    data () {
+      return {
+        description: '任务表管理页面',
+        // 表头
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            }
+          },
+          {
+            title:'内容',
+            align:"center",
+            dataIndex: 'taskContent'
+          },
+          {
+            title:'任务状态(0待办1进行2完成)',
+            align:"center",
+            dataIndex: 'taskStatus_dictText'
+          },
+          {
+            title:'待办角色',
+            align:"center",
+            dataIndex: 'taskRole'
+          },
+          {
+            title:'待办人员',
+            align:"center",
+            dataIndex: 'taskUser'
+          },
+          {
+            title:'关联委托id',
+            align:"center",
+            dataIndex: 'weituoId'
+          },
+          {
+            title:'创建时间',
+            align:"center",
+            dataIndex: 'createTime'
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            fixed:"right",
+            width:147,
+            scopedSlots: { customRender: 'action' }
+          }
+        ],
+        url: {
+          list: "/itdmFirstPage/itdmTask/list",
+          delete: "/itdmFirstPage/itdmTask/delete",
+          deleteBatch: "/itdmFirstPage/itdmTask/deleteBatch",
+          exportXlsUrl: "/itdmFirstPage/itdmTask/exportXls",
+          importExcelUrl: "itdmFirstPage/itdmTask/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+    this.getSuperFieldList();
+    },
+    computed: {
+      importExcelUrl: function(){
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      },
+    },
+    methods: {
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'taskContent',text:'内容',dictCode:''})
+        fieldList.push({type:'int',value:'taskStatus',text:'任务状态(0待办1进行2完成)',dictCode:'task_status'})
+        fieldList.push({type:'string',value:'taskRole',text:'待办角色',dictCode:''})
+        fieldList.push({type:'string',value:'taskUser',text:'待办人员',dictCode:''})
+        fieldList.push({type:'string',value:'weituoId',text:'关联委托id',dictCode:''})
+        fieldList.push({type:'datetime',value:'createTime',text:'创建时间'})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>

+ 124 - 0
itdmWeb/src/views/module-iTDM/itdmFirstPage/modules/ItdmTaskForm.vue

@@ -0,0 +1,124 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item label="内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskContent">
+              <a-input v-model="model.taskContent" placeholder="请输入内容"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="任务状态(0待办1进行2完成)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskStatus">
+              <j-dict-select-tag type="list" v-model="model.taskStatus" dictCode="task_status" placeholder="请选择任务状态(0待办1进行2完成)" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="待办角色" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskRole">
+              <a-input v-model="model.taskRole" placeholder="请输入待办角色"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="待办人员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskUser">
+              <a-input v-model="model.taskUser" placeholder="请输入待办人员"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="关联委托id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="weituoId">
+              <a-input v-model="model.weituoId" placeholder="请输入关联委托id"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+  </a-spin>
+</template>
+
+<script>
+
+  import { httpAction, getAction } from '@/api/manage'
+  import { validateDuplicateValue } from '@/utils/util'
+
+  export default {
+    name: 'ItdmTaskForm',
+    components: {
+    },
+    props: {
+      //表单禁用
+      disabled: {
+        type: Boolean,
+        default: false,
+        required: false
+      }
+    },
+    data () {
+      return {
+        model:{
+         },
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+        confirmLoading: false,
+        validatorRules: {
+        },
+        url: {
+          add: "/itdmFirstPage/itdmTask/add",
+          edit: "/itdmFirstPage/itdmTask/edit",
+          queryById: "/itdmFirstPage/itdmTask/queryById"
+        }
+      }
+    },
+    computed: {
+      formDisabled(){
+        return this.disabled
+      },
+    },
+    created () {
+       //备份model原始值
+      this.modelDefault = JSON.parse(JSON.stringify(this.model));
+    },
+    methods: {
+      add () {
+        this.edit(this.modelDefault);
+      },
+      edit (record) {
+        this.model = Object.assign({}, record);
+        this.visible = true;
+      },
+      submitForm () {
+        const that = this;
+        // 触发表单验证
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            httpAction(httpurl,this.model,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+            })
+          }
+         
+        })
+      },
+    }
+  }
+</script>

+ 84 - 0
itdmWeb/src/views/module-iTDM/itdmFirstPage/modules/ItdmTaskModal.Style#Drawer.vue

@@ -0,0 +1,84 @@
+<template>
+  <a-drawer
+    :title="title"
+    :width="width"
+    placement="right"
+    :closable="false"
+    @close="close"
+    destroyOnClose
+    :visible="visible">
+    <itdm-task-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></itdm-task-form>
+    <div class="drawer-footer">
+      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
+      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
+    </div>
+  </a-drawer>
+</template>
+
+<script>
+
+  import ItdmTaskForm from './ItdmTaskForm'
+
+  export default {
+    name: 'ItdmTaskModal',
+    components: {
+      ItdmTaskForm
+    },
+    data () {
+      return {
+        title:"操作",
+        width:800,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods: {
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        });
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.submitForm();
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+/** Button按钮间距 */
+  .ant-btn {
+    margin-left: 30px;
+    margin-bottom: 30px;
+    float: right;
+  }
+  .drawer-footer{
+    position: absolute;
+    bottom: -8px;
+    width: 100%;
+    border-top: 1px solid #e8e8e8;
+    padding: 10px 16px;
+    text-align: right;
+    left: 0;
+    background: #fff;
+    border-radius: 0 0 2px 2px;
+  }
+</style>

+ 60 - 0
itdmWeb/src/views/module-iTDM/itdmFirstPage/modules/ItdmTaskModal.vue

@@ -0,0 +1,60 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="关闭">
+    <itdm-task-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></itdm-task-form>
+  </j-modal>
+</template>
+
+<script>
+
+  import ItdmTaskForm from './ItdmTaskForm'
+  export default {
+    name: 'ItdmTaskModal',
+    components: {
+      ItdmTaskForm
+    },
+    data () {
+      return {
+        title:'',
+        width:800,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods: {
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        })
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.submitForm();
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>

+ 2 - 0
itdmWeb/src/views/module-iTDM/itdmGongdanDetail/ItdmGongdanDetailList.vue

@@ -9,6 +9,7 @@
               <a-select
                 v-model="queryParam.weituoClient"
                 label-in-value
+                show-search
                 :options="weituoClientOptions"
                 @change="getWeituoClientOptions"
               ></a-select>
@@ -19,6 +20,7 @@
               <a-select
                 v-model="queryParam.weituoId"
                 key-in-value
+                show-search
                 :options="weituoNoOptions"
               ></a-select>
             </a-form-item>

+ 2 - 2
itdmWeb/src/views/module-iTDM/itdmGongdanMaster/itdmGongdanMasterList.vue

@@ -160,7 +160,7 @@ export default {
           section_sensor: "传感器:",
           section_reportNo: "报告编号:",
           section_shiiyanType: "试验类型:",
-          section_worker: "试验员:",
+          section_worker: "操作员:",
           section_yangpinCount: "样品数量:",
           section_priority: '优先级:',
           status: '任务状态',
@@ -498,7 +498,7 @@ export default {
     // 获取项目经理下拉列表
     getManagerList(){
       var query ={
-        position: "试验员"
+        position: "操作员"
       }
       getManagerList(query).then((res) => {
         this.tasks.collections.worker = res.map(response =>{

+ 101 - 0
itdmWeb/src/views/module-iTDM/itdmJiXiao/itdmJiXiao.vue

@@ -0,0 +1,101 @@
+<template>
+  <div >
+
+    <vxe-toolbar>
+      <template #buttons>
+        <vxe-button icon="vxe-icon-square-plus" @click="insertEvent()">新增</vxe-button>
+        <vxe-button @click="$refs.xTable.removeCheckboxRow()">删除选中</vxe-button>
+        <!-- <vxe-button @click="getSelectionEvent">获取选中</vxe-button>
+        <vxe-button icon="vxe-icon-save" @click="getInsertEvent">获取新增</vxe-button> -->
+      </template>
+    </vxe-toolbar>
+
+    <vxe-table
+      border
+      show-overflow
+      ref="xTable"
+      height="500"
+      :data="tableData"
+      :mouse-config="{selected: true}"
+      :checkbox-config="{range: true}"
+      :menu-config="tableMenu"
+      :keyboard-config="{isArrow: true, isDel: true, isEnter: true, isTab: true, isEdit: true, isChecked: true}"
+      :edit-config="{trigger: 'dblclick', mode: 'cell'}">
+      <vxe-column type="seq" width="60"></vxe-column>
+      <vxe-column type="checkbox" width="60"></vxe-column>
+      <vxe-column field="name" title="Name" :edit-render="{autofocus: '.myinput'}">
+        <template #edit="{ row }">
+          <input v-model="row.name" type="text" class="myinput" />
+        </template>
+      </vxe-column>
+      <vxe-column field="role" title="Role" :edit-render="{autofocus: '.vxe-input--inner'}">
+        <template #edit="{ row }">
+          <vxe-input v-model="row.role" type="text"></vxe-input>
+        </template>
+      </vxe-column>
+      <vxe-column field="nickname" title="Nickname" :edit-render="{autofocus: '.vxe-input--inner'}">
+        <template #edit="{ row }">
+          <vxe-input v-model="row.nickname" type="text"></vxe-input>
+        </template>
+      </vxe-column>
+      <vxe-column field="address" title="Address" :edit-render="{autofocus: '.vxe-input--inner'}">
+        <template #edit="{ row }">
+          <vxe-input v-model="row.address" type="text"></vxe-input>
+        </template>
+      </vxe-column>
+    </vxe-table>
+  </div>
+</template>
+
+<script>
+import VXETable from 'vxe-table'
+
+  export default {
+        data () {
+          return {
+            tableData: [
+              { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'test abc' },
+              { id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
+              { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
+              { id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 23, address: 'test abc' },
+              { id: 10005, name: 'Test5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' },
+              { id: 10006, name: 'Test6', role: 'Designer', sex: 'Women', age: 21, address: 'test abc' },
+              { id: 10007, name: 'Test7', role: 'Test', sex: 'Man', age: 29, address: 'test abc' },
+              { id: 10008, name: 'Test8', role: 'Develop', sex: 'Man', age: 35, address: 'test abc' }
+            ],
+            tableMenu: {
+              body: {
+                options: [
+                  [
+                    { code: 'copy', name: '复制', prefixIcon: 'vxe-icon-copy', disabled: false },
+                    { code: 'remove', name: '删除', disabled: false },
+                    { code: 'save', name: '保存', prefixIcon: 'vxe-icon-save', disabled: false }
+                  ]
+                ]
+              }
+            }
+          }
+        },
+        methods: {
+          async insertEvent () {
+            const $table = this.$refs.xTable
+            const record = {
+              sex: '1'
+            }
+            const { row: newRow } = await $table.insertAt(record)
+            await $table.setActiveCell(newRow, 'name')
+          },
+          getInsertEvent () {
+            const $table = this.$refs.xTable
+            const insertRecords = $table.getInsertRecords()
+            VXETable.modal.alert(insertRecords.length)
+          },
+          getSelectionEvent () {
+            const $table = this.$refs.xTable
+            const selectRecords = $table.getCheckboxRecords()
+            VXETable.modal.alert(selectRecords.length)
+          }
+        }
+      }
+              
+</script>

+ 235 - 0
itdmWeb/src/views/module-iTDM/itdmJiXiao/itdmJiXiaoWT.vue

@@ -0,0 +1,235 @@
+<template>
+  <a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="密码锁住的位置">
+              <a-input placeholder="请输入密码锁住的位置" v-model="queryParam.weizhi"></a-input>
+            </a-form-item>
+          </a-col> -->
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="委托单位">
+                <a-select
+                v-model="queryParam.weituoClient"
+                placeholder="请选择委托单位"
+                show-search
+                allowClear
+                :options="weituoClientOptions"
+                @change="getWeituoClientOptions">
+                </a-select>
+              </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="委托编号">
+                <a-select
+                v-model="queryParam.weituoNo"
+                placeholder="请选择委托编号"
+                show-search
+                allowClear
+                :options="weituoNoOptions">
+                </a-select>
+              </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+              <!-- <a @click="handleToggleSearch" style="margin-left: 8px">
+                {{ toggleSearchStatus ? '收起' : '展开' }}
+                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
+              </a> -->
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <!-- <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+      <a-button type="primary" icon="download" @click="handleExportXls('修改密码表')">导出</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> -->
+      <!-- 高级查询区域 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
+      </a-dropdown>
+    </div> -->
+
+    <!-- table区域-begin -->
+    <div>
+      <!-- <div clas="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
+        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
+      </div>s -->
+
+      <a-table
+        ref="table"
+        size="middle"
+        :scroll="{x:true}"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+          <!-- <a-space>
+            <arrow-right-outlined />
+          </a-space> -->
+
+          <!-- <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="handleDetail(record)">详情</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown> -->
+        </span>
+
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import {getWeituoClientList, getWeituoInfoListByClient } from '@/api/api'
+
+  export default {
+    name: 'ItdmMimaList',
+    mixins:[JeecgListMixin, mixinDevice],
+    data () {
+      return {
+        // 委托单位列表
+        weituoClientOptions : [],
+        // 委托编号列表
+        weituoNoOptions:[],
+        description: '绩效——委托列表界面',
+        // 表头
+        columns: [
+          {
+            title:'委托单位',
+            align:"center",
+            dataIndex: 'weituoClient'
+          },
+          {
+            title:'委托编号',
+            align:"center",
+            dataIndex: 'weituoNo'
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            fixed:"right",
+            width:347,
+            scopedSlots: { customRender: 'action' }
+          }
+        ],
+        url: {
+          list: "/weituo/itdmWeituoInfo/SHTGlist",
+          // delete: "/itdmMima/itdmMima/delete",
+          // deleteBatch: "/itdmMima/itdmMima/deleteBatch",
+          // exportXlsUrl: "/itdmMima/itdmMima/exportXls",
+          // importExcelUrl: "itdmMima/itdmMima/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+      this.getClientList()
+    // this.getSuperFieldList();
+    },
+    // computed: {
+    //   importExcelUrl: function(){
+    //     return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    //   },
+    // },
+    methods: {
+      // 获取委托单位下拉列表
+      getClientList(){
+        getWeituoClientList().then((res) =>{
+          console.log(res)
+          this.weituoClientOptions = res.result.map( res => {
+            return{
+              value: res,
+              label: res
+            }
+          })
+        })
+      },
+      // 监听委托单位获取
+      getWeituoClientOptions(value){
+        console.log(value);
+        // console.log(this.tasks.queryParamNo)
+        this.weituoNoOptions = []
+        this.queryParam.weituoNo = ''
+        getWeituoInfoListByClient(this.queryParam).then((res) =>{
+          this.weituoNoOptions = res.result.map( res => {
+            return{
+              value: res.weituoNo,  //传的值
+              label: res.weituoNo,  //展示
+            }
+          })
+        })
+      },
+      // initDictConfig(){
+      // },
+      // getSuperFieldList(){
+      //   let fieldList=[];
+      //   fieldList.push({type:'string',value:'weizhi',text:'密码锁住的位置',dictCode:''})
+      //   fieldList.push({type:'string',value:'mima',text:'密码',dictCode:''})
+      //   fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
+      //   this.superFieldList = fieldList
+      // }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less';
+</style>

+ 25 - 4
itdmWeb/src/views/module-iTDM/weituochaxun/ItdmWeituoYangpinList.vue

@@ -8,11 +8,27 @@
               <a-input placeholder="请输入委托单位名称" v-model="queryParam.weituoClient"></a-input>
             </a-form-item>
           </a-col> -->
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="委托单id">
-              <a-input placeholder="请输入委托id" v-model="queryParam.weituoId"></a-input>
-            </a-form-item>
+          <a-col :xl="7" :lg="7" :md="8" :sm="24">
+            <!-- <a-form-item label="委托单位名称">
+              <a-input placeholder="请输入委托单位名称" v-model="queryParam.weituoClient"></a-input>
+            </a-form-item> -->
+             <a-select
+              show-search
+              placeholder="请选择"
+              v-model="queryParam.id"
+              :filter-option="false"
+              :options="options"
+              :allow-clear="true"
+            >
+            </a-select>
+          </a-col>
+          <a-col :xl="5" :lg="7" :md="8" :sm="24">
+           <a-date-picker :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss" v-model:value="queryParam.startTime" placeholder="请输入开始时间"/>
+          </a-col>
+           <a-col :xl="5" :lg="7" :md="8" :sm="24">
+           <a-date-picker  format="YYYY-MM-DD HH:mm:ss" v-model:value="queryParam.endTime" placeholder="请输入结束时间"/>
           </a-col>
+
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
@@ -165,6 +181,11 @@
             dataIndex: 'sampleQuantities'
           },
           {
+            title:'检测依据',
+            align:"center",
+            dataIndex:'judgementBasis'
+          },
+          {
             title:'生产厂家',
             align:"center",
             dataIndex: 'sampleManufacturer'

+ 17 - 17
itdmWeb/src/views/module-iTDM/weituoshenhe/ItdmWeituoshenheInfoList.vue

@@ -9,11 +9,11 @@
               <a-input placeholder="请输入委托单位名称" v-model="queryParam.weituoClient"></a-input>
             </a-form-item>
           </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+          <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="委托单位地址">
               <a-input placeholder="请输入委托单位地址" v-model="queryParam.weituoAddress"></a-input>
             </a-form-item>
-          </a-col>
+          </a-col> -->
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
@@ -30,14 +30,14 @@
     <!-- 查询区域-END -->
 
     <!-- 操作按钮区域 -->
-    <div class="table-operator">
+    <!-- <div class="table-operator">
       <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
       <a-button type="primary" icon="download" @click="handleExportXls('委托信息')">导出</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-upload> -->
       <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> -->
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
           <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
@@ -90,8 +90,8 @@
         <span slot="action" slot-scope="text, record">
           <a @click="handleEdit(record)">审核</a>
 
-          <!-- <a-divider type="vertical" />
-          <!-- <a-dropdown>
+             <a-divider type="vertical" />
+          <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
             <a-menu slot="overlay">
               <a-menu-item>
@@ -100,10 +100,10 @@
               <a-menu-item>
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
-                </a-popconfirm> -->
-              <!-- </a-menu-item>
+                </a-popconfirm>
+              </a-menu-item>
             </a-menu>
-          </a-dropdown> --> 
+          </a-dropdown>
         </span>
 
       </a-table>
@@ -206,12 +206,12 @@ export default {
           align:"center",
           dataIndex: 'shenheStatus_dictText'
         },
-        // {
-        //   title:'试验条件文件地址',
-        //   align:"center",
-        //   dataIndex: 'tiaojianFile',
-        //   scopedSlots: {customRender: 'fileSlot'}
-        // },
+        {
+          title:'试验条件文件地址',
+          align:"center",
+          dataIndex: 'tiaojianFile',
+          scopedSlots: {customRender: 'fileSlot'}
+        },
         {
           title: '操作',
           dataIndex: 'action',
@@ -222,7 +222,7 @@ export default {
         }
       ],
       url: {
-        list: "/weituo/itdmWeituoInfo/list",
+        list: "/weituo/itdmWeituoShenhe/list",
         
         delete: "/weituo/itdmWeituoInfo/delete",
         deleteBatch: "/weituo/itdmWeituoInfo/deleteBatch",

+ 12 - 12
itdmWeb/yarn.lock

@@ -12454,15 +12454,15 @@ vuex@^3.1.0:
   resolved "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz"
   integrity sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==
 
-vxe-table-plugin-antd@1.8.10:
-  version "1.8.10"
-  resolved "https://registry.npmjs.org/vxe-table-plugin-antd/-/vxe-table-plugin-antd-1.8.10.tgz"
-  integrity sha512-XsNToY1zSmuLo/oQfSeDjnD4I03U+YYiMcBiduW8/BhZ7/eSTF4L2Rmu7cSDbLJefPwxsQKRd+jlFeF7T433Mw==
+vxe-table-plugin-antd@^3.0.7:
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/vxe-table-plugin-antd/-/vxe-table-plugin-antd-3.0.7.tgz#1e84b8b6b4caf5cf7dc338c7708763da1fd00463"
+  integrity sha512-lVBSqL8ATYWGbdKx0AH57KpVy0eOai9vUXlU4BfemlyB1ITDuurfpnk7d1Almos0oZsdT7ijPukXP/DO/DA5sA==
 
-vxe-table@2.9.13:
-  version "2.9.13"
-  resolved "https://registry.npmjs.org/vxe-table/-/vxe-table-2.9.13.tgz"
-  integrity sha512-MOaJLLJtdgVbiZX8netLqG8+daB7IbjBM9+5Ppt+seyjBrNV2C4dd8JkGpGX5zPThSzkYPGz66vo404Yu5Q/EA==
+vxe-table@^3.6.13:
+  version "3.6.13"
+  resolved "https://registry.yarnpkg.com/vxe-table/-/vxe-table-3.6.13.tgz#dd9184c725e1c833b1d1c29c29c161765f3e89e4"
+  integrity sha512-Lm4J1dH4CAHnHWO/JKPo77SCaggPTdk7RFhCNvkMWRsReBvWwTR4zBUnEwmnomhNorRVdBYETjOnsbfor7us9Q==
 
 warning@^4.0.0:
   version "4.0.3"
@@ -12865,10 +12865,10 @@ ws@^6.0.0, ws@^6.2.1:
   dependencies:
     async-limiter "~1.0.0"
 
-xe-utils@2.4.8:
-  version "2.4.8"
-  resolved "https://registry.npmjs.org/xe-utils/-/xe-utils-2.4.8.tgz"
-  integrity sha512-/95ZaQK9GJE/EYrpMv9lgKdkEMQwWv4a4TF4dddi4gSzZ33vp/rZvzJNNV9XknaOkMizK9IBSX8CB/nL+SAk0Q==
+xe-utils@^3.5.11:
+  version "3.5.11"
+  resolved "https://registry.yarnpkg.com/xe-utils/-/xe-utils-3.5.11.tgz#a2c0a78a8c48796e4784a9d9d4aa475314cc1f7c"
+  integrity sha512-lyKc/lTBga1Zb63p+FED8mtxLnYIjSS8PVJM1N64NGdCu/3d1XubaVeke2p91RHssP0ExVAl2LUqZYperoz76Q==
 
 xregexp@^4.2.4:
   version "4.3.0"