xiebaomin 1 年之前
父节点
当前提交
d3a5ce1acd

+ 26 - 6
src/components/UploadImage/index.vue

@@ -70,14 +70,12 @@ export default {
   data() {
     return {
       dialogVisible: false,
-      dialogImageUrl: ''
+      dialogImageUrl: '',
+      chooseState: true
     }
   },
   computed: {
     ...mapGetters(['token']),
-    chooseState() {
-      return this.imageList.length < this.limit
-    },
     action() {
       return process.env.VUE_APP_BASE_API + '/formData/MultiPictareaddData'
     },
@@ -88,17 +86,31 @@ export default {
     }
   },
   watch: {
-    iamgeList(val) {
-      console.log(val)
+    'imageList': {
+      handler(val) {
+        if (val.length === this.limit) {
+          this.chooseState = false
+        }
+      },
+      deep: true,
+      immediate: true
     }
   },
   methods: {
     // 上传成功
     uploadImageSuccess(response, file, fileList) {
+      if (fileList.length === this.limit) {
+        this.chooseState = false
+      }
       this.$emit('success', { response, file, fileList })
     },
     // 删除
     handleImageRemove(file, fileList) {
+      if (fileList.length === this.limit) {
+        this.chooseState = false
+      } else {
+        this.chooseState = true
+      }
       this.$emit('remove', { file, fileList })
     },
     // 上传失败
@@ -115,3 +127,11 @@ export default {
   }
 }
 </script>
+
+<style lang="scss" scoped>
+.el-upload-hidden {
+  ::v-deep .el-upload--picture-card {
+    display: none !important;
+  }
+}
+</style>

+ 21 - 5
src/views/serviceSettlement/components/UploadFile.vue

@@ -47,7 +47,7 @@ export default {
     },
     accept: {
       type: String,
-      default: '.doc,.ppt,.pdf'
+      default: '.docx,.pptx,.pdf'
     },
     listType: {
       type: String,
@@ -92,7 +92,7 @@ export default {
   computed: {
     ...mapGetters(['token']),
     chooseState() {
-      return this.fileList.length < this.limit
+      return this.dataList.length < this.limit
     },
     action() {
       return process.env.VUE_APP_BASE_API + '/formData/MultiPictareaddData'
@@ -106,6 +106,7 @@ export default {
   watch: {
     list: {
       handler(val) {
+        console.log(val)
         this.dataList = val
       },
       deep: true
@@ -114,8 +115,16 @@ export default {
   methods: {
     // 上传成功
     uploadSuccess(response, file, fileList) {
-      this.dataList.push(file)
-      this.$emit('success', { response, file, fileList })
+      if (file.response.data) {
+        this.dataList.push(file)
+        console.log(response, file)
+        this.$emit('success', { fileList: this.dataList })
+      } else {
+        this.$message({
+          type: 'error',
+          message: '上传失败'
+        })
+      }
     },
     // 删除
     handleRemove(index) {
@@ -125,7 +134,7 @@ export default {
     // 变化
     handleChange(file, fileList) {
       this.dataList = fileList
-      this.$emit('change', { file, fileList })
+      this.$emit('change', { fileList: this.dataList })
     },
     // 上传失败
     uploadError(err, file, fileList) {
@@ -133,6 +142,10 @@ export default {
       this.$emit('error', { err, file, fileList })
     },
     handlePreview(f) {
+      if (f.data.indexOf('pptx') !== -1) {
+        window.open(`https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(f.data)}`)
+        return
+      }
       window.open(f.data)
     }
   }
@@ -143,6 +156,9 @@ export default {
 ::v-deep .el-upload-list {
   display: none;
 }
+::v-deep .el-upload__tip {
+  position: static;
+}
 .file-list {
   display: flex;
   justify-content: space-between;

+ 19 - 4
src/views/serviceSettlement/contract/edit.vue

@@ -21,9 +21,12 @@
         />
       </el-form-item>
       <el-form-item label="上传合同:" prop="contractRelateds">
-        <file-upload :list="contractList" @success="uploadSuccess($event, 'contractRelateds')"
-                     @change="uploadChange($event, 'contractRelateds')"
-                     @remove="handleRemove($event, 'contractRelateds')"
+        <file-upload
+          :list="contractList" :before-upload="beforeUpload"
+          :tip="'支持上传pdf、docx、 pptx文件格式'"
+          @success="uploadSuccess($event, 'contractRelateds')"
+          @change="uploadChange($event, 'contractRelateds')"
+          @remove="handleRemove($event, 'contractRelateds')"
         />
       </el-form-item>
       <el-form-item>
@@ -53,7 +56,7 @@ export default {
       serviceLevel: [{ id: 1, value: '一级' }, { id: 2, value: '二级' }, { id: 3, value: '三级' }],
       rules: {
         contractId: [{ required: true, message: '请输入合同编号', trigger: 'blur' }],
-        contractstartDate: [
+        contractStartDate: [
           { required: true, message: '请选择合同起始时间', trigger: 'change' }
         ],
         contractEndDate: [
@@ -93,6 +96,18 @@ export default {
           this.$router.back()
         }
       })
+    },
+    beforeUpload(file) {
+      console.log(file)
+      if (file.size / 1024 / 1024 < 50) {
+        return true
+      } else {
+        this.$message({
+          type: 'error',
+          message: '文件大小限制在50M以内'
+        })
+        return false
+      }
     }
   }
 }

+ 17 - 1
src/views/serviceSettlement/list/edit.vue

@@ -10,7 +10,7 @@
         <el-input v-model="formLabelAlign.name" placeholder="请输入服务商名称" />
       </el-form-item>
       <el-form-item label="服务商级别:" prop="serviceLevel">
-        <el-select v-model="formLabelAlign.serviceLevel" placeholder="请选择活动区域">
+        <el-select v-model="formLabelAlign.serviceLevel" placeholder="请选择服务商级别">
           <el-option
             v-for="i in serviceLevel"
             :key="i.id"
@@ -50,6 +50,7 @@
           v-model="formLabelAlign.mobile"
           placeholder="请输入联系电话"
           :maxlength="11"
+          oninput="value=value.replace(/[^\d]/g, '')"
         />
       </el-form-item>
       <el-form-item label="简介图:" prop="textRelateds">
@@ -76,6 +77,8 @@
         <file-upload
           :list="infoList"
           :limit="6"
+          :tip="'支持上传pdf、docx、 pptx文件格式'"
+          :before-upload="beforeUpload"
           @success="uploadSuccess($event, 'infoRelateds')"
           @change="uploadChange($event, 'infoRelateds')"
           @remove="handleRemove($event, 'infoRelateds')"
@@ -108,6 +111,7 @@
           <file-upload
             :limit="6"
             :file-list="contractList"
+            :tip="'支持上传pdf、docx、 pptx文件格式'"
             @success="contractUploadSuccess($event)"
             @remove="contractHandleRemove($event)"
           />
@@ -260,6 +264,18 @@ export default {
           }
         }
       })
+    },
+    beforeUpload(file) {
+      console.log(file)
+      if (file.size / 1024 / 1024 < 50) {
+        return true
+      } else {
+        this.$message({
+          type: 'error',
+          message: '文件大小限制在50M以内'
+        })
+        return false
+      }
     }
   }
 }

+ 85 - 21
src/views/serviceSettlement/list/index.vue

@@ -14,20 +14,31 @@
       </div>
       <div class="filter-control">
         <span>服务商级别:</span>
-        <el-select v-model="listQuery.serviceLevel" placeholder="请选择活动区域">
-          <el-option v-for="i,index in serviceLevel" :key="index" :label="i.value" :value="i.id" />
+        <el-select v-model="listQuery.serviceLevel" placeholder="请选择服务商级别" @change="getList">
+          <el-option
+            v-for="(i, index) in serviceLevel"
+            :key="index"
+            :label="i.value"
+            :value="i.id"
+          />
         </el-select>
       </div>
       <div class="filter-control">
         <span>服务商类型:</span>
-        <el-select v-model="listQuery.serviceCategory" placeholder="服务商类型">
-          <el-option v-for="i,index in serviceCategoryList" :key="index" :label="i.value" :value="i.id" />
+        <el-select v-model="listQuery.serviceCategory" placeholder="服务商类型" @change="getList">
+          <el-option
+            v-for="(i, index) in serviceCategoryList"
+            :key="index"
+            :label="i.value"
+            :value="i.id"
+            @change="getList"
+          />
         </el-select>
       </div>
       <div class="filter-control">
         <span>资格证书编号:</span>
         <el-input
-          v-model="listQuery.keyword"
+          v-model="listQuery.qualificationId"
           placeholder="关键词"
           clearable
           @keyup.enter.native="getList"
@@ -65,19 +76,31 @@
       @selection-change="handleSelectionChange"
     >
       <!--<el-table-column type="selection" width="55" align="center" />-->
-      <el-table-column label="序号" type="index" sortable="custom" align="center" width="80" />
+      <el-table-column
+        label="序号"
+        type="index"
+        sortable="custom"
+        align="center"
+        width="80"
+      />
       <el-table-column prop="name" label="服务商名称" align="center" />
       <el-table-column prop="serviceLevel" label="服务商级别" align="center">
         <template slot-scope="scope">
           <div>
-            {{ scope.row.serviceLevel == '1' ? '一级' : scope.row.serviceLevel == '2' ? '二级' : '三级' }}
+            {{
+              scope.row.serviceLevel == "1"
+                ? "一级"
+                : scope.row.serviceLevel == "2"
+                  ? "二级"
+                  : "三级"
+            }}
           </div>
         </template>
       </el-table-column>
       <el-table-column prop="serviceCategory" label="服务商类型" align="center">
         <template slot-scope="scope">
           <div>
-            {{ scope.row.serviceLevel == '1' ? '个人' : '企业' }}
+            {{ scope.row.serviceCategory == "1" ? "个人" : "企业" }}
           </div>
         </template>
       </el-table-column>
@@ -86,7 +109,7 @@
       <el-table-column prop="status" label="状态" align="center">
         <template slot-scope="scope">
           <div>
-            {{ scope.row.status === 90 ? '上线' : '下线' }}
+            {{ scope.row.status === 90 ? "上线" : "下线" }}
           </div>
         </template>
       </el-table-column>
@@ -95,19 +118,42 @@
       <el-table-column label="操作" align="center" width="200">
         <template slot-scope="{ row }">
           <div class="labelCenter">
-            <el-button type="primary" size="mini" @click="handleStatus(row)">{{ row.status === 91 ? '上线' : '下线' }}</el-button>
-            <el-button type="primary" size="mini" @click="$router.push('/service/settlement/edit?id=' + row.id)">编辑</el-button>
+            <el-button
+              type="primary"
+              size="mini"
+              @click="handleStatus({ userIds: row.userId, status: row.status })"
+            >{{ row.status === 91 ? "上线" : "下线" }}</el-button>
+            <el-button
+              type="primary"
+              size="mini"
+              @click="$router.push('/service/settlement/edit?id=' + row.id)"
+            >编辑</el-button>
             <el-button type="primary" size="mini" @click="showQrCode(row)">二维码</el-button>
-            <el-button type="primary" size="mini" @click="$router.push('/service/settlement/contract/list?providersId=' + row.id)">合同管理</el-button>
+            <el-button
+              type="primary"
+              size="mini"
+              @click="
+                $router.push('/service/settlement/contract/list?providersId=' + row.id)
+              "
+            >合同管理</el-button>
           </div>
         </template>
       </el-table-column>
     </el-table>
 
-    <qr-code ref="qrCode" :item-obj="providerItem" :show-qr-code="showQrImag" @showQrCode="showQrCode" />
+    <qr-code
+      ref="qrCode"
+      :item-obj="providerItem"
+      :show-qr-code="showQrImag"
+      @showQrCode="showQrCode"
+    />
 
     <el-dialog title="选择服务商" :visible.sync="exportDialogVisible" width="70%">
-      <service-list-selector v-if="exportDialogVisible" @cancel="onSelectorCancel" @confirm="onSelectorConfirm" />
+      <service-list-selector
+        v-if="exportDialogVisible"
+        @cancel="onSelectorCancel"
+        @confirm="onSelectorConfirm"
+      />
     </el-dialog>
 
     <!-- 页码 -->
@@ -136,7 +182,9 @@ export default {
     return {
       listQuery: {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 10,
+        serviceCategory: '',
+        serviceLevel: ''
       },
       time: '',
       showQrImag: false,
@@ -153,8 +201,13 @@ export default {
     this.getList()
   },
   methods: {
-    async getList() {
-      const { data } = await getProviderList(this.listQuery)
+    async getList(obj) {
+      const form = Object.assign(this.listQuery, {
+        contractStartDate: obj ? obj[0] : '',
+        contractEndDate: obj ? obj[1] : '',
+        providersId: this.providersId || ''
+      })
+      const { data } = await getProviderList(form)
       this.list = data.results
       this.total = data.totalRecord
     },
@@ -215,12 +268,23 @@ export default {
       }
     },
     onSelectorConfirm($event) {
-      console.log($event)
       this.exportDialogVisible = false
       const toSelect = {
-        3: () => this.handleStatus({ userIds: $event.map(e => e.userId).join(','), status: 90 }),
-        1: () => this.downLoadImage({ ids: $event.map(e => e.id).join(','), type: this.selectType }),
-        2: () => this.downLoadImage({ ids: $event.map(e => e.id).join(','), type: this.selectType })
+        3: () =>
+          this.handleStatus({
+            userIds: $event.map((e) => e.userId).join(','),
+            status: 90
+          }),
+        1: () =>
+          this.downLoadImage({
+            ids: $event.map((e) => e.id).join(','),
+            type: this.selectType
+          }),
+        2: () =>
+          this.downLoadImage({
+            ids: $event.map((e) => e.id).join(','),
+            type: this.selectType
+          })
       }
       toSelect[this.selectType]()
     }

+ 2 - 2
src/views/serviceSettlement/mixin/index.js

@@ -3,8 +3,8 @@ import { getToken } from '@/utils/auth'
 export default {
   data() {
     return {
-      serviceLevel: [{ id: 1, value: '一级' }, { id: 2, value: '二级' }, { id: 3, value: '三级' }],
-      serviceCategoryList: [{ id: 1, value: '个人' }, { id: 2, value: '企业' }]
+      serviceLevel: [{ id: '', value: '请选择' }, { id: 1, value: '一级' }, { id: 2, value: '二级' }, { id: 3, value: '三级' }],
+      serviceCategoryList: [{ id: '', value: '请选择' }, { id: 1, value: '个人' }, { id: 2, value: '企业' }]
     }
   },
   methods: {