lizhenhao 2 éve
szülő
commit
408f4d2dd8

+ 32 - 7
src/views/common/UpLoadComponent.vue

@@ -1,7 +1,7 @@
 <!--文件上传组件-->
 <template>
   <div>
-    <el-divider content-position="left"><i class="el-icon-document"></i> {{dividerName}}</el-divider>
+    <el-divider v-if="showDivider" content-position="left"><i class="el-icon-document"></i> {{dividerName}}</el-divider>
     <el-upload ref="upload" style="display: inline-block; :show-header='status'" action=""
                :limit="999" :http-request="httpRequest"
                multiple
@@ -91,7 +91,8 @@
         dividerName: '',
         uploadFlag: false,
         delFlag: false,
-        createBy: ''
+        createBy: '',
+        showDivider: true
       }
     },
     watch: {
@@ -107,12 +108,24 @@
     },
     methods: {
       /**
-       * 组件中divider的名称赋值
+       * dividerName: 组件中divider的名称赋值
+       * showDivider: ‘附件‘Divider是否展示
+       *     注:值为空时,默认值为true
+       *    showDivider=false时 ‘附件‘Divider隐藏
        **/
-      setDividerName (dividerName) {
+      setDividerName (dividerName, showDivider) {
         if (this.commonJS.isNotEmpty(dividerName)) {
           this.dividerName = dividerName
         }
+        if (this.commonJS.isNotEmpty(showDivider)) {
+          if (showDivider === false) {
+            this.showDivider = false
+          } else {
+            this.showDivider = true
+          }
+        } else {
+          this.showDivider = true
+        }
       },
       /**
        * 文件上传组件初始化
@@ -130,12 +143,15 @@
        *    注:值为空时,默认值为‘附件’
        * @param uploadFlag  ‘上传文件’按钮是否禁用
        *    注:值为空时,默认值为false
-       *    auth=view&&uploadFlag=false ‘上传文件’按钮禁用
+       *    auth=view&&uploadFlag=false ‘上传文件’按钮禁用
        * @param delFlag  ‘删除’按钮是否禁用
        *    注:值为空时,默认值为false
-       *    auth=view&&delFlag=false ‘删除’按钮禁用
+       *    auth=view&&delFlag=false时 ‘删除’按钮禁用
+       * @param showDivider  ‘附件‘Divider是否展示
+       *    注:值为空时,默认值为true
+       *    showDivider=false时 ‘附件‘Divider隐藏
        */
-      async newUpload (auth, fileList, directory, maxValue, dividerName, uploadFlag, delFlag) {
+      async newUpload (auth, fileList, directory, maxValue, dividerName, uploadFlag, delFlag, showDivider) {
         await this.fileLoadingFalse()
         if (this.commonJS.isEmpty(dividerName)) {
           this.dividerName = '附件'
@@ -188,6 +204,15 @@
         }
         // this.dataList = JSON.parse(JSON.stringify(fileList))
         // this.dataListNew = JSON.parse(JSON.stringify(fileList))
+        if (this.commonJS.isEmpty(showDivider)) {
+          this.showDivider = true
+        } else {
+          if (showDivider === false) {
+            this.showDivider = false
+          } else {
+            this.showDivider = true
+          }
+        }
       },
       async httpRequest (file) {
         await httpRequest(file, fileName(file), this.directory, this.maxValue)

+ 2 - 2
src/views/modules/cw/workClientInfo/WorkClientList.vue

@@ -37,8 +37,8 @@
           <vxe-column  min-width="150px"align="center" fixed="right" title="状态" field="status" >
             <template slot-scope="scope">
               <el-button  type="text" @click="detail(scope.row)" effect="dark" size="mini"
-                          :type="$dictUtils.getDictLabel('questions_status_flag', scope.row.status, '-')">
-                {{$dictUtils.getDictLabel("questions_status", scope.row.status, '-')}}
+                          :type="$dictUtils.getDictLabel('cw_status_flag', scope.row.status, '-')">
+                {{$dictUtils.getDictLabel("cw_status", scope.row.status, '-')}}
               </el-button>
             </template>
           </vxe-column>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 500 - 316
src/views/modules/cw/workClientInfo/WorkClientTaskForm.vue


+ 170 - 0
src/views/modules/cw/workClientInfo/manageLevelType/ManageLevelTypeListForm.vue

@@ -0,0 +1,170 @@
+<template>
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+      v-dialogDrag
+      width="1100px"
+      height="500px"
+      @close="close"
+      @keyup.enter.native="getManageLevelType"
+      :visible.sync="visible">
+      <div style="height: calc(100% - 50px);">
+        <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+          <!-- 搜索框-->
+<!--          <el-form-item label="客户姓名" prop="name">-->
+<!--            <el-input size="small" v-model="searchForm.name" placeholder="请输入客户姓名" clearable></el-input>-->
+<!--          </el-form-item>-->
+
+<!--          <el-form-item>-->
+<!--            <el-button type="primary" @click="list()" size="small" icon="el-icon-search">查询</el-button>-->
+<!--            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>-->
+<!--          </el-form-item>-->
+        </el-form>
+
+        <vxe-table
+          border="inner"
+          auto-resize
+          resizable
+          height="450px"
+          :loading="loading"
+          size="small"
+          ref="manageLevelTypeTable"
+          show-header-overflow
+          show-overflow
+          highlight-hover-row
+          :row-config="{isCurrent: true}"
+          :radio-config="{trigger: 'row'}"
+          :menu-config="{}"
+          @sort-change=""
+          :sort-config="{remote:true}"
+          :data="dataList"
+          :tree-config="{transform: true, rowField: 'id', parentField: 'parentId'}"
+          :checkbox-config="{}">
+          <vxe-column type="radio" width="40" ></vxe-column>
+          <vxe-column min-width="350" title="管理级次分类名称" field="name" align="left" tree-node></vxe-column>
+<!--          <vxe-column min-width="50" align="center" title="序号" field="sort"></vxe-column>-->
+<!--          <vxe-column min-width="50" align="center" title="级别" field="level"></vxe-column>-->
+<!--          <vxe-column min-width="50" align="center" title="备注" field="remarks"></vxe-column>-->
+        </vxe-table>
+<!--        <vxe-pager-->
+<!--          background-->
+<!--          size="small"-->
+<!--          :current-page="tablePage.currentPage"-->
+<!--          :page-size="tablePage.pageSize"-->
+<!--          :total="tablePage.total"-->
+<!--          :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"-->
+<!--          :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"-->
+<!--          @page-change="currentChangeHandle">-->
+<!--        </vxe-pager>-->
+      </div>
+      <span slot="footer" class="dialog-footer">
+      <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
+      <el-button size="small" type="primary" v-if="method != 'view'" @click="getManageLevelType()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+    </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import InputNumber from '@/views/modules/sys/workContract/InputNumber.vue'
+  import ManageLevelTypeService from '@/api/cw/workClientInfo/ManageLevelTypeService'
+  import SelectUserTree from '@/views/modules/utils/treeUserSelect'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        dataList: [],
+        searchForm: {
+          name: ''
+        }
+      }
+    },
+    manageLevelTypeService: null,
+    created () {
+      this.manageLevelTypeService = new ManageLevelTypeService()
+    },
+    components: {
+      SelectUserTree,
+      InputNumber
+    },
+    methods: {
+      init (deputy) {
+        this.title = '管理级次分类选择'
+        this.visible = true
+        this.list()
+      },
+      // 表单提交
+      getManageLevelType () {
+        let row = this.$refs.manageLevelTypeTable.getRadioRecord()
+        if (this.commonJS.isEmpty(row)) {
+          this.$message.error('请至少选择一条数据')
+        } else {
+          let _this = this
+          const waitForEach = function () {
+            return new Promise(function (resolve, reject) {
+              _this.dataList.forEach((item) => {
+                if (item.parentId === row.id) {
+                  _this.$message.error('只可以选择最小节点的数据')
+                  throw new Error('只可以选择最小节点的数据')
+                }
+              })
+              resolve()
+            })
+          }
+          waitForEach().then(() => {
+            this.close()
+            this.$emit('getManageLevelType', row)
+          }).catch((reject) => {
+            console.log('waitForEach.catch', reject)
+          })
+        }
+      },
+      list () {
+        this.dataList = []
+        this.loading = true
+        this.manageLevelTypeService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm
+        }).then(({data}) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.loading = false
+        })
+      },
+      // 当前页
+      currentChangeHandle ({currentPage, pageSize}) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.list()
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.list()
+      },
+      close () {
+        this.$refs.searchForm.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-dialog__body {
+    padding-top: 0;
+  }
+  /deep/ .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
+    margin-bottom: 0px;
+  }
+</style>

+ 170 - 0
src/views/modules/cw/workClientInfo/organizationType/OrganizationTypeListForm.vue

@@ -0,0 +1,170 @@
+<template>
+  <div>
+    <el-dialog
+      :title="title"
+      :close-on-click-modal="false"
+      v-dialogDrag
+      width="1100px"
+      height="500px"
+      @close="close"
+      @keyup.enter.native="getOrganizationType"
+      :visible.sync="visible">
+      <div style="height: calc(100% - 50px);">
+        <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
+          <!-- 搜索框-->
+<!--          <el-form-item label="客户姓名" prop="name">-->
+<!--            <el-input size="small" v-model="searchForm.name" placeholder="请输入客户姓名" clearable></el-input>-->
+<!--          </el-form-item>-->
+
+<!--          <el-form-item>-->
+<!--            <el-button type="primary" @click="list()" size="small" icon="el-icon-search">查询</el-button>-->
+<!--            <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>-->
+<!--          </el-form-item>-->
+        </el-form>
+
+        <vxe-table
+          border="inner"
+          auto-resize
+          resizable
+          height="450px"
+          :loading="loading"
+          size="small"
+          :row-config="{isCurrent: true}"
+          ref="organizationTypeTable"
+          show-header-overflow
+          show-overflow
+          highlight-hover-row
+          :menu-config="{}"
+          @sort-change=""
+          :sort-config="{remote:true}"
+          :data="dataList"
+          :radio-config="{trigger: 'row'}"
+          :tree-config="{transform: true, rowField: 'id', parentField: 'parentId'}"
+          :checkbox-config="{}">
+          <vxe-column type="radio" width="40" ></vxe-column>
+          <vxe-column min-width="350" title="组织类型分类名称" field="name" align="left" tree-node></vxe-column>
+<!--          <vxe-column min-width="50" align="center" title="序号" field="sort"></vxe-column>-->
+<!--          <vxe-column min-width="50" align="center" title="级别" field="level"></vxe-column>-->
+<!--          <vxe-column min-width="50" align="center" title="备注" field="remarks"></vxe-column>-->
+        </vxe-table>
+<!--        <vxe-pager-->
+<!--          background-->
+<!--          size="small"-->
+<!--          :current-page="tablePage.currentPage"-->
+<!--          :page-size="tablePage.pageSize"-->
+<!--          :total="tablePage.total"-->
+<!--          :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"-->
+<!--          :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"-->
+<!--          @page-change="currentChangeHandle">-->
+<!--        </vxe-pager>-->
+      </div>
+      <span slot="footer" class="dialog-footer">
+      <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
+      <el-button size="small" type="primary" v-if="method != 'view'" @click="getOrganizationType()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
+    </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import InputNumber from '@/views/modules/sys/workContract/InputNumber.vue'
+  import OrganizationTypeService from '@/api/cw/workClientInfo/OrganizationTypeService'
+  import SelectUserTree from '@/views/modules/utils/treeUserSelect'
+  export default {
+    data () {
+      return {
+        title: '',
+        method: '',
+        visible: false,
+        loading: false,
+        tablePage: {
+          total: 0,
+          currentPage: 1,
+          pageSize: 10,
+          orders: []
+        },
+        dataList: [],
+        searchForm: {
+          name: ''
+        }
+      }
+    },
+    organizationTypeService: null,
+    created () {
+      this.organizationTypeService = new OrganizationTypeService()
+    },
+    components: {
+      SelectUserTree,
+      InputNumber
+    },
+    methods: {
+      init (deputy) {
+        this.title = '组织类型分类选择'
+        this.visible = true
+        this.list()
+      },
+      // 表单提交
+      getOrganizationType () {
+        let row = this.$refs.organizationTypeTable.getRadioRecord()
+        if (this.commonJS.isEmpty(row)) {
+          this.$message.error('请至少选择一条数据')
+        } else {
+          let _this = this
+          const waitForEach = function () {
+            return new Promise(function (resolve, reject) {
+              _this.dataList.forEach((item) => {
+                if (item.parentId === row.id) {
+                  _this.$message.error('只可以选择最小节点的数据')
+                  throw new Error('只可以选择最小节点的数据')
+                }
+              })
+              resolve()
+            })
+          }
+          waitForEach().then(() => {
+            this.$emit('getOrganizationType', row)
+            this.close()
+          }).catch((reject) => {
+            console.log('waitForEach.catch', reject)
+          })
+        }
+      },
+      list () {
+        this.dataList = []
+        this.loading = true
+        this.organizationTypeService.list({
+          'current': this.tablePage.currentPage,
+          'size': this.tablePage.pageSize,
+          'orders': this.tablePage.orders,
+          ...this.searchForm
+        }).then(({data}) => {
+          this.dataList = data.records
+          this.tablePage.total = data.total
+          this.loading = false
+        })
+      },
+      // 当前页
+      currentChangeHandle ({currentPage, pageSize}) {
+        this.tablePage.currentPage = currentPage
+        this.tablePage.pageSize = pageSize
+        this.list()
+      },
+      resetSearch () {
+        this.$refs.searchForm.resetFields()
+        this.list()
+      },
+      close () {
+        this.$refs.searchForm.resetFields()
+        this.visible = false
+      }
+    }
+  }
+</script>
+<style scoped>
+  /deep/ .el-dialog__body {
+    padding-top: 0;
+  }
+  /deep/ .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
+    margin-bottom: 0px;
+  }
+</style>