Browse Source

新增服务待审核

yuanmingze 5 tháng trước cách đây
mục cha
commit
94f9cdeae3

+ 2 - 2
.env.development

@@ -1,10 +1,10 @@
 NODE_ENV = 'development'
 NODE_ENV = 'development'
 VUE_APP_TYPE= 'dev'
 VUE_APP_TYPE= 'dev'
-# VUE_APP_URL = 'http://10.144.62.235:9999'
+VUE_APP_URL = 'http://10.144.62.235:9999'
 # VUE_APP_URL = 'https://mic.freerr.cn'
 # VUE_APP_URL = 'https://mic.freerr.cn'
 # VUE_APP_URL = 'https://mic.cnbg.com.cn'
 # VUE_APP_URL = 'https://mic.cnbg.com.cn'
 # VUE_APP_URL = 'https://cnbg.yaoyi.net'
 # VUE_APP_URL = 'https://cnbg.yaoyi.net'
 # VUE_APP_URL = 'http://192.168.110.25:9999'
 # VUE_APP_URL = 'http://192.168.110.25:9999'
-VUE_APP_URL = 'https://mic-t.cnbg.com.cn'
+# VUE_APP_URL = 'https://mic-t.cnbg.com.cn'
 
 
 
 

+ 1 - 1
.env.production

@@ -2,5 +2,5 @@ NODE_ENV = 'production'
 VUE_APP_TYPE= 'prod'
 VUE_APP_TYPE= 'prod'
 # VUE_APP_URL = 'https://cnbg.yaoyi.net'
 # VUE_APP_URL = 'https://cnbg.yaoyi.net'
 # VUE_APP_URL = 'https://mic-t.cnbg.com.cn'
 # VUE_APP_URL = 'https://mic-t.cnbg.com.cn'
-VUE_APP_URL = 'https://mic.cnbg.com.cn'
+# VUE_APP_URL = 'https://mic.cnbg.com.cn'
 
 

BIN
dist—pre.zip → dist_测试.zip


+ 8 - 0
src/api/serviceManagement/servicesToBeReviewed/index.js

@@ -87,3 +87,11 @@ export function getTaskV2PageTileApi(params) {
     params: params
     params: params
   });
   });
 }
 }
+
+export function getTaskV2PageCheckedApi(params) {
+  return request({
+    url: ' /admin/task/v2/page/checked',
+    method: 'get',
+    params: params
+  });
+}

+ 292 - 0
src/views/serviceManagement/serviceReviewed/components/TaskDetail.vue

@@ -0,0 +1,292 @@
+<template>
+  <div class="task-box">
+    <!-- 分享的图片展示 -->
+
+    <el-image v-if="showImg" style="width: 100px; height: 100px" :src="taskInfo.shareImgUrl" :preview-src-list="[taskInfo.shareImgUrl]"> </el-image>
+    <template v-if="configList && configList.length > 0">
+      <div style="max-height: 270px; overflow: auto">
+        <div v-for="item in configList" :key="item.id" class="field-box">
+          <template v-if="item.taskFiledType == 'domain' || item.taskFiledType == 'select' || item.taskFiledType == 'tree'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value" v-show="!(item.taskTypeId == '19' && item.taskFiledKey == 'temp3')">
+              {{ getDesc(item) }}
+            </div>
+          </template>
+          <!-- 城市选择 -->
+          <template v-if="item.taskFiledType === 'area'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] || '--' }}
+            </div>
+          </template>
+          <!-- 文字输入 -->
+          <template v-if="item.taskFiledType == 'text' || item.taskFiledType == 'inputautoselect' || item.taskFiledType == 'map' || item.taskFiledType == 'mapwithimg'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] || '--' }}
+            </div>
+          </template>
+          <!-- 时间 -->
+          <template v-if="item.taskFiledType == 'datetime'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] || '--' }}
+            </div>
+          </template>
+          <!-- 日期范围 -->
+          <template v-if="item.taskFiledType == 'datatimerange'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] }}
+            </div>
+          </template>
+          <!-- 图片上传 -->
+          <div v-if="item.taskFiledType == 'img'" class="divline" style="width: 100%; height: 15px; background-color: #e9e9e9; margin-bottom: 5px"></div>
+          <template v-if="item.taskFiledType == 'img'">
+            <div class="upload-field">
+              <div class="field-text" :class="{ required: item.isMustfill == '1' }">{{ item.taskFiledValue }}:</div>
+              <!-- 上传组件 -->
+              <div class="img-box" v-if="item.imgList">
+                <div v-for="(iItem, index) in item.imgList" :key="index" class="img-box-content">
+                  <span class="type">{{ iItem.type }}</span>
+                  <el-image class="img-item" lazy :src="iItem.url" :preview-src-list="getPreviewList(item.previewList, index)" />
+                </div>
+              </div>
+            </div>
+          </template>
+          <!-- 金额 -->
+          <template v-if="item.taskFiledType == 'money'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] || '--' }}
+            </div>
+          </template>
+          <!-- 数字 -->
+          <template v-if="item.taskFiledType == 'number'">
+            <div class="title-value">{{ item.taskFiledValue }}:</div>
+            <div class="desc-value">
+              {{ wmTaskContent[item.taskFiledKey] || '--' }}
+            </div>
+          </template>
+          <!-- 长文本 -->
+          <template v-if="item.taskFiledType == 'longtext'">
+            <div class="longtext-box">
+              <div class="field-text" :class="{ required: item.isMustfill == '1' }">{{ item.taskFiledValue }}:</div>
+              <textarea class="textarea-box" :disabled="true" :value="wmTaskContent[item.taskFiledKey] || '--'" :maxlength="item.taskFiledMaxsize" />
+            </div>
+          </template>
+        </div>
+      </div>
+    </template>
+  </div>
+</template>
+
+<script>
+import taskApi from '@/api/taskDetail/task';
+import commonApi from '@/api/taskDetail/common';
+import provinces from '@/util/lib/province';
+import citys from '@/util/lib/city';
+import areas from '@/util/lib/area';
+import request from '@/router/axios';
+
+export default {
+  name: 'index',
+  data() {
+    return {
+      baseUrl: process.env.VUE_APP_URL,
+      showImg: false, // 是否显示只展示图片,分享用到
+      taskInfo: {},
+      wmTaskContent: {},
+      taskTypeId: 0, // 任务类型id
+      configList: [], // 配置列表
+      dictList: [], //字典
+      imgTypeList: ['jpeg', 'jpg', 'png', 'git', 'bmp'] // 能查看的文件类型
+    };
+  },
+
+  methods: {
+    // 获取详情
+    getDesc(item) {
+      // 拜访类任务
+      const arr = ['51', '52', '53'];
+      if (arr.includes(item.taskTypeId) && item.taskFiledKey === 'temp24') {
+        return this.wmTaskContent['temp24label'];
+      }
+      // 获取需要转换的字符串(例如 '1,2,3')
+      const contentValue = this.wmTaskContent[item.taskFiledKey];
+      if (!contentValue) return '--';
+      // 获取字典表对应数组
+      const itemList = this.dictList[item.dictGroupName] || [];
+      // 按逗号拆分成数组
+      const valueArray = contentValue.split(',');
+      // 将每个拆分值找到对应的 label
+      const result = valueArray.map((val) => {
+        const foundItem = itemList.find((dictItem) => dictItem.value === val);
+        return foundItem ? foundItem.label : null;
+      });
+      // 如果有任意一个值无法找到对应的 label,则直接返回 '--'
+      if (result.some((label) => label === null)) {
+        return '--';
+      }
+      // 否则,使用逗号拼接并返回
+      return result.join(',');
+    },
+
+    // 得出图片
+    // 得出图片
+    getImgList(urlStr, item) {
+      // 如果字段类型不是图片或没有 urlStr,则直接返回空数组
+      if (item.taskFiledType !== 'img' || !urlStr) return [[], []];
+
+      // 将字符串按逗号拆分为数组
+      const urlArr = urlStr.split(',');
+      // 如果拆分后为空,也返回空数组
+      if (!urlArr.length) return [[], []];
+
+      // 使用 reduce 一次性构建 imgList 和 previewList
+      const [imgList, previewList] = urlArr.reduce(
+        (acc, curUrl) => {
+          let [imgListAcc, previewListAcc] = acc;
+          let type = '无';
+          let newUrl = curUrl;
+
+          if (curUrl.includes(';1')) {
+            type = '拍照';
+            newUrl = curUrl.replace(';1', '');
+          } else if (curUrl.includes(';2')) {
+            type = '相册';
+            newUrl = curUrl.replace(';2', '');
+          }
+
+          const fullUrl = process.env.VUE_APP_URL + newUrl;
+          imgListAcc.push({ type, url: fullUrl });
+          previewListAcc.push(fullUrl);
+
+          return [imgListAcc, previewListAcc];
+        },
+        [[], []]
+      );
+
+      return [imgList, previewList];
+    },
+
+    // 获取任务详情
+    async getTaskInfoById(id) {
+      try {
+        const res = await taskApi.getTaskInfoById(id);
+        const { data } = res.data;
+        this.wmTaskContent = data.wmTaskContent;
+        this.taskInfo = data.taskInfo;
+        this.taskTypeId = data.taskType;
+        this.getTaskContentConfigByTaskTypeId(data.taskType);
+      } catch (e) {
+        console.log(e);
+      }
+    },
+    // 获取配置
+    async getTaskContentConfigByTaskTypeId(value) {
+      try {
+        let res = await commonApi.getTaskContentConfigByTaskTypeId(value);
+        let { config, dict } = res.data.data;
+        this.configList = config;
+        this.dictList = dict;
+        this.configList.forEach((item) => {
+          item.taskFiledType = item.taskFiledType.trim();
+          if (item.taskFiledType == 'img') {
+            let imgArr = this.getImgList(this.wmTaskContent[item.taskFiledKey], item);
+            item.imgList = imgArr[0];
+            item.previewList = imgArr[1];
+
+            console.log('item', item);
+          }
+        });
+      } catch (e) {
+        console.log(e);
+      }
+      // this.getMapAddress();
+      // uni.hideLoading();
+    },
+    getPreviewList(imgList, index) {
+      // 解决el-image大图预览定位图片不准确的问题
+      return imgList.slice(index).concat(imgList.slice(0, index));
+    },
+    getInfo(id) {
+      this.getTaskInfoById(id);
+    },
+    mounted() {
+      this.getTaskInfoById(this.id);
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.field-box {
+  //display: flex;
+  padding: 0 20px 10px;
+  overflow: hidden;
+  .title-value {
+    //width: 50%;
+    float: left;
+  }
+  .desc-value {
+    float: left;
+  }
+  .upload-field {
+    .img-box {
+      padding-top: 10px;
+      display: flex;
+      flex-wrap: wrap;
+    }
+    .file-box {
+      .file-item {
+        padding: 2px 8px;
+        cursor: pointer;
+        &:hover {
+          background-color: #f5f7fa;
+          color: #2d8cf0;
+        }
+      }
+    }
+  }
+  .img-box-content {
+    padding-top: 15px;
+    position: relative;
+
+    .type {
+      font-size: 12px;
+      position: absolute;
+      top: -3px;
+    }
+  }
+  .img-item {
+    width: 100px;
+    height: 100px;
+    margin-right: 10px;
+  }
+  .longtext-box {
+    width: 50%;
+    .textarea-box {
+      margin-top: 10px !important;
+      width: 100%;
+    }
+  }
+}
+
+.sign-in-box {
+  padding: 10px 20px;
+}
+
+.detail-info {
+  ul {
+    list-style: none;
+    li {
+      span {
+        min-width: 80px;
+      }
+      display: flex;
+      margin-bottom: 5px;
+    }
+  }
+}
+</style>

+ 51 - 0
src/views/serviceManagement/serviceReviewed/index.js

@@ -0,0 +1,51 @@
+export const tableOptin = {
+  border: true,
+  index: true,
+  indexLabel: '序号',
+  menuAlign: 'center',
+  searchMenuSpan: 6,
+  editBtn: false,
+  delBtn: false,
+  dialogClickModal: false,
+  dialogCloseBtn: false,
+  align: 'center',
+  addBtn: false,
+  column: [
+    {
+      label: '服务编号',
+      prop: 'taskNumber'
+    },
+    {
+      abel: '执行包名称',
+      prop: 'pkgName'
+    },
+    {
+      label: '服务类型',
+      prop: 'taskTypeId'
+    },
+    {
+      label: '服务分值',
+      prop: 'taskScore'
+    },
+    {
+      label: '推广员姓名',
+      prop: 'salesName'
+    },
+    {
+      label: '服务提交时间',
+      prop: 'createTime'
+    },
+    {
+      label: '审核状态',
+      prop: 'taskStatus'
+    },
+    {
+      label: '服务提供商',
+      prop: 'entName'
+    },
+    {
+      label: '服务产品',
+      prop: 'skuName'
+    }
+  ]
+};

+ 359 - 0
src/views/serviceManagement/serviceReviewed/index.vue

@@ -0,0 +1,359 @@
+<template>
+  <basic-container>
+    <div class="search-content">
+      <el-form :model="searchFrom" label-width="140px">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="执行包年度">
+              <el-date-picker clearable class="w100" v-model="searchFrom.year" type="year" placeholder="请选择执行包年度" format="yyyy" value-format="yyyy"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="执行包季度">
+              <el-select v-model="searchFrom.quarter" placeholder="请选择服务季度" class="w100" clearable>
+                <el-option label="第一季度" :value="1"></el-option>
+                <el-option label="第二季度" :value="2"></el-option>
+                <el-option label="第三季度" :value="3"></el-option>
+                <el-option label="第四季度" :value="4"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="服务提交时间">
+              <el-date-picker class="w100" clearable v-model="searchFrom.createTime" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="服务类型">
+              <el-select v-model="searchFrom.taskTypeId" placeholder="请选择服务类型" class="w100" clearable>
+                <el-option :label="item.name" :value="item.id" v-for="item in taskTypeAvailArr" :key="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="服务提供商">
+              <el-select v-model="searchFrom.vendorId" placeholder="请选择服务提供商" class="w100" clearable filterable>
+                <el-option v-for="item in deptListArr" :key="item.entId" :label="item.name" :value="item.entId" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="代表姓名">
+              <el-select v-model="searchFrom.salesId" placeholder="请选择代表姓名" class="w100" clearable filterable>
+                <el-option v-for="item in userListArr" :key="item.userId" :label="item.realName" :value="item.userId" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="产品所属生产企业">
+              <el-select v-model="searchFrom.mahName" @change="mahNameChange" placeholder="请选择产品所属生产企业" class="w100" clearable>
+                <el-option v-for="item in mahNameArr" :key="item.value" :label="item.label" :value="item.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="关联产品名称">
+              <el-select v-model="searchFrom.skuId" placeholder="请选择关联产品名称" class="w100" :disabled="drugDisabled" clearable filterable>
+                <el-option v-for="item in currDrugList" :key="item.id" :label="item.drugNameTy" :value="item.id" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="执行包所属省份">
+              <el-select v-model="searchFrom.provAbbr" placeholder="请选择省份" class="w100" clearable>
+                <el-option v-for="province in abbreviationsProvincesList" :key="province" :label="province" :value="province" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="上游服务包名称">
+              <el-select v-model="searchFrom.pkgIds" placeholder="请选择上游服务包名称" class="w100" clearable filterable>
+                <el-option v-for="(item, index) in relPkgNameArr" :key="index" :label="item.label" :value="item.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <div class="search-btns">
+              <el-button type="success" class="btn-style" @click="clickBtn">搜索</el-button>
+              <el-button @click="clearSearch">清空</el-button>
+            </div>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="table">
+      <vxe-table
+        ref="tableRef"
+        border
+        allAlign="center"
+        show-overflow
+        highlight-hover-row
+        height="auto"
+        empty-text="暂无匹配数据"
+        v-loading="tableLoading"
+        :data="tableData"
+        :scroll-y="{ enabled: false }"
+        :scroll-x="{ enabled: true }"
+        :header-cell-style="{ 'text-align': 'center' }"
+        :cell-style="{ 'text-align': 'center' }"
+      >
+        <vxe-table-column type="seq" title="序号" width="100"></vxe-table-column>
+        <vxe-table-column field="taskNumber" title="服务编号" width="200"></vxe-table-column>
+        <vxe-table-column field="cycle" title="服务包周期" width="200"> </vxe-table-column>
+        <vxe-table-column field="relPkgName" title="上游服务包名称" width="250"> </vxe-table-column>
+        <vxe-table-column field="pkgName" title="服务包名称" width="200"></vxe-table-column>
+        <vxe-table-column field="taskTypeName" title="服务类型" width="200"></vxe-table-column>
+        <vxe-table-column field="taskScore" title="服务分值" width="100"></vxe-table-column>
+        <vxe-table-column field="salesName" title="代表姓名" width="150"></vxe-table-column>
+        <vxe-table-column field="createTime" title="服务提交时间" width="200"></vxe-table-column>
+        <vxe-table-column field="entName" title="服务提供商" width="200"></vxe-table-column>
+        <vxe-table-column field="mahName" title="产品所属生产企业" width="200"></vxe-table-column>
+        <vxe-table-column field="skuName" title="关联产品名称" width="200"></vxe-table-column>
+        <vxe-table-column field="provAbbr" title="执行包所属省份" width="130"></vxe-table-column>
+        <vxe-table-column title="操作" fixed="right" width="130">
+          <template slot-scope="scope">
+            <div class="btns"><el-button type="text" @click="serviceDetail(scope.row)">服务详情</el-button></div>
+          </template>
+        </vxe-table-column>
+      </vxe-table>
+    </div>
+
+    <vxe-pager
+      :current-page.sync="page.currentPage"
+      :page-size.sync="page.pageSize"
+      :total="page.total"
+      :page-sizes="page.pageSizes"
+      @page-change="pageChange"
+      :layouts="['PrevJump', 'PrevPage', 'JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
+    >
+    </vxe-pager>
+  </basic-container>
+</template>
+
+<script>
+import { getTaskTypeAvailApi, getDeptv2Avail, getDrug2Avail, getUserV2Avail, getPkgV2Api, getTaskV2PageCheckedApi } from '@/api/serviceManagement/servicesToBeReviewed/index.js';
+import { tableOptin } from './index.js';
+import { getDictType } from '@/api/common';
+import abbreviationsProvinces from '@/const/abbreviationsProvinces.js';
+import dayjs from 'dayjs';
+import { mapGetters } from 'vuex';
+import TaskDetail from './components/TaskDetail.vue';
+import refuseReason from '@/components/refuseReason';
+import Config from '@/settings';
+
+export default {
+  components: { refuseReason, TaskDetail },
+  data() {
+    return {
+      tableOptin,
+      tableData: [],
+      tableLoading: false,
+      checkResultArr: [],
+      taskTypeAvailArr: [],
+      mahNameArr: [],
+      deptListArr: [],
+      drugListArr: [],
+      userListArr: [],
+      currDrugList: [],
+      relPkgNameArr: {},
+      searchLoading: false,
+      drugDisabled: true,
+      abbreviationsProvincesList: abbreviationsProvinces,
+      searchFrom: {
+        year: '',
+        taskTypeId: '',
+        quarter: '',
+        createTime: '',
+        provAbbr: '',
+        mahName: '',
+        vendorId: '',
+        salesId: '',
+        skuId: '',
+        pkgIds: '',
+        taskStatus: 3
+      },
+
+      page: {
+        pageSizes: [10, 50, 100, 300, 500],
+        total: 0, // 总页数
+        currentPage: 1, // 当前页数
+        pageSize: 300 // 每页显示多少条
+      },
+
+      taskForm: {
+        checkResult: '',
+        checkMessage: ''
+      },
+      rules: {
+        checkResult: [{ required: true, message: '请选择审批意见', trigger: 'change' }]
+      }
+    };
+  },
+  computed: {
+    ...mapGetters(['userInfo'])
+  },
+  created() {
+    this.getDict();
+  },
+  mounted() {
+    const lastYear = dayjs().subtract(1, 'year').format('YYYY');
+    this.searchFrom.year = lastYear;
+    this.getList();
+  },
+
+  methods: {
+    getDict() {
+      getDictType({ type: 'task_status' }).then((res) => {
+        this.checkResultArr = res.data.data;
+      });
+      getDictType({ type: 'mah_name' }).then((res) => {
+        this.mahNameArr = res.data.data;
+      });
+      getTaskTypeAvailApi().then((res) => {
+        this.taskTypeAvailArr = res.data.data;
+      });
+      getDeptv2Avail().then((res) => {
+        this.deptListArr = res.data.data;
+      });
+      getUserV2Avail().then((res) => {
+        this.userListArr = res.data.data;
+      });
+      getDrug2Avail().then((res) => {
+        this.drugListArr = res.data.data;
+      });
+      getPkgV2Api().then((res) => {
+        let arr = [];
+        let data = res.data.data;
+        for (let key in data) {
+          let obj = {
+            label: key,
+            value: data[key]
+          };
+          arr.push(obj);
+        }
+
+        this.relPkgNameArr = arr;
+      });
+    },
+    async getList() {
+      this.tableLoading = true;
+      const obj = Object.assign(
+        {
+          current: this.page.currentPage,
+          size: this.page.pageSize
+        },
+        this.searchFrom
+      );
+      const res = await getTaskV2PageCheckedApi(obj);
+
+      this.tableLoading = false;
+      if (res.data.code === 0) {
+        this.tableData = res.data.data.records;
+        this.tableData.forEach((item) => {
+          const currA = this.taskTypeAvailArr.find((itn) => itn.id === item.taskTypeId);
+          const currB = this.checkResultArr.find((itn) => itn.value === item.taskStatus);
+          item.taskTypeName = currA?.name ?? '';
+          item.checkResultName = currB?.label ?? '';
+          item.cycle = item.pkgStartTime + '~' + item.pkgEndTime;
+        });
+        this.page.total = res.data.data.total;
+        console.log(' this.tableData', this.tableData);
+      }
+    },
+    clickBtn() {
+      this.tableData = [];
+      this.page.currentPage = 1;
+      this.getList();
+    },
+    clearSearch() {
+      this.searchFrom = {
+        year: dayjs().subtract(1, 'year').format('YYYY'),
+        taskTypeId: '',
+        quarter: '',
+        createTime: '',
+        provAbbr: '',
+        mahName: '',
+        vendorId: '',
+        salesId: '',
+        skuId: '',
+        pkgIds: '',
+        taskStatus: 3
+      };
+    },
+    pageChange(obj) {
+      this.page.currentPage = obj.currentPage;
+      this.page.pageSize = obj.pageSize;
+      this.getList();
+    },
+    mahNameChange(e) {
+      if (e) {
+        const curr = this.drugListArr[e];
+        this.currDrugList = curr;
+
+        this.drugDisabled = false;
+      } else {
+        this.searchFrom.skuId = '';
+        this.currDrugList = [];
+        this.drugDisabled = true;
+      }
+    },
+
+    serviceDetail(row) {
+      window.open(
+        Config.outsideUrl + '/h5/#/pages/task/task-detail/index?id=' + row.taskId,
+        'newwindow',
+        'height=500, width=400, top=200, left=300, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'
+      );
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.search-btns {
+  margin-left: 50px;
+  display: flex;
+
+  .btn-style {
+    margin-right: 15px;
+  }
+}
+
+.tips {
+  display: inline-block;
+  padding: 0 5px;
+  color: #85ce61;
+  border-radius: 3px;
+  line-height: 14px;
+  font-size: 14px;
+}
+
+.table {
+  min-height: 1000px;
+  max-height: 1500px;
+}
+.teskDetailsty {
+  width: 100%;
+  height: 30px;
+  line-height: 30px;
+  font-size: 16px;
+  font-weight: 600;
+  color: #333333;
+  border-bottom: 1px solid #d7d6d5;
+  margin: 0 0 10px 0;
+}
+
+.check-tips {
+  margin-bottom: 5px;
+  font-size: 16px;
+  color: rgb(233 77 77);
+  text-align: center;
+  font-weight: 600;
+}
+</style>

+ 1 - 1
src/views/serviceManagement/servicesToBeReviewed/index.vue

@@ -379,7 +379,7 @@ export default {
     },
     },
     clearSearch() {
     clearSearch() {
       this.searchFrom = {
       this.searchFrom = {
-        year: '',
+        year: dayjs().subtract(1, 'year').format('YYYY'),
         taskTypeId: '',
         taskTypeId: '',
         quarter: '',
         quarter: '',
         createTime: '',
         createTime: '',