Browse Source

绩效考核

wyh 2 years ago
parent
commit
48a0716181

+ 3 - 3
itdmWeb/package.json

@@ -48,9 +48,9 @@
     "vue-splitpane": "^1.0.4",
     "vue-splitpane": "^1.0.4",
     "vuedraggable": "^2.20.0",
     "vuedraggable": "^2.20.0",
     "vuex": "^3.1.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"
     "xss": "^1.0.13"
   },
   },
   "devDependencies": {
   "devDependencies": {

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

@@ -12,7 +12,7 @@ import JVxeSubPopover from './JVxeSubPopover'
 import JVxeDetailsModal from './JVxeDetailsModal'
 import JVxeDetailsModal from './JVxeDetailsModal'
 import JVxePagination from './JVxePagination'
 import JVxePagination from './JVxePagination'
 import { cloneObject, getVmParentByName, pushIfNotExist, randomString, simpleDebounce } from '@/utils/util'
 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'
 import { getNoAuthCols } from '@/utils/authFilter'
 
 
 export default {
 export default {

+ 6 - 0
itdmWeb/src/main.js

@@ -47,6 +47,12 @@ import '@/assets/less/JAreaLinkage.less'
 import VueAreaLinkage from 'vue-area-linkage'
 import VueAreaLinkage from 'vue-area-linkage'
 import '@/components/jeecg/JVxeTable/install'
 import '@/components/jeecg/JVxeTable/install'
 import '@/components/JVxeCells/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'
 import { rules } from '@/utils/rules'
 Vue.prototype.rules = rules
 Vue.prototype.rules = rules

+ 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>

+ 12 - 12
itdmWeb/yarn.lock

@@ -12454,15 +12454,15 @@ vuex@^3.1.0:
   resolved "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz"
   resolved "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz"
   integrity sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==
   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:
 warning@^4.0.0:
   version "4.0.3"
   version "4.0.3"
@@ -12865,10 +12865,10 @@ ws@^6.0.0, ws@^6.2.1:
   dependencies:
   dependencies:
     async-limiter "~1.0.0"
     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:
 xregexp@^4.2.4:
   version "4.3.0"
   version "4.3.0"