Переглянути джерело

Merge branch 'update' into product

zhuliu 1 рік тому
батько
коміт
803fc60247

+ 9 - 0
src/api/newApi/importAndExport.js

@@ -68,5 +68,14 @@ export default {
     refreshPatent(data) {
         return axios.post('/xiaoshi/patent/refreshPatent', data)
     },
+
+    /**
+     * 查询任务的错误信息
+     * @param {*} data 
+     * @returns 
+     */
+    getPatentImportLog(data){
+        return axios.post("/xiaoshi/importTask/getPatentImportLog", data);
+    },
     
 }

+ 50 - 0
src/api/newApi/project.js

@@ -50,4 +50,54 @@ export default {
         return axios.post("/xiaoshi/patentProject/addProjectPatentToReport", data);
     },
     
+    /**
+     * 添加定时更新条件
+     * @param {*} data 
+     * @returns 
+     */
+    addQuartzCondition(data){
+        return axios.post("/xiaoshi/importTaskCondition/addQuartzCondition", data);
+    },
+    /**
+     * 编辑定时更新条件
+     * @param {*} data 
+     * @returns 
+     */
+    updateQuartzCondition(data){
+        return axios.post("/xiaoshi/importTaskCondition/updateQuartzCondition", data);
+    },
+    /**
+     * 查询定时更新条件
+     * @param {*} data 
+     * @returns 
+     */
+    queryQuartzCondition(data){
+        return axios.post("/xiaoshi/importTaskCondition/queryQuartzCondition", data);
+    },
+    /**
+     * 删除定时更新条件
+     * @param {*} data 
+     * @returns 
+     */
+    removeQuartzCondition(data){
+        return axios.post("/xiaoshi/importTaskCondition/removeQuartzCondition", data);
+    },
+
+     /**
+     * 查询专题库定时配置
+     * @param {*} data 
+     * @returns 
+     */
+     queryProjectQuartz(data){
+        return axios.post("/xiaoshi/patentProject/queryProjectQuartz", data);
+    },
+    /**
+     * 配置专题库定时配置
+     * @param {*} data 
+     * @returns 
+     */
+    setProjectQuartz(data){
+        return axios.post("/xiaoshi/patentProject/setProjectQuartz", data);
+    },
+
 };

+ 10 - 0
src/router/index.js

@@ -67,6 +67,16 @@ const routes = [
             component: () => import('@/views/project/index.vue'),
           },
           {
+            path: '/updateCriteria',
+            meta: {
+              title: '更新条件',
+              sign: 'updateCriteria',
+              belong: 'project',
+              // permission:'xiaoshi/project'
+            },
+            component: () => import('@/views/project/components/updateCriteria/index.vue'),
+          },
+          {
             path: 'patentCollection',
             meta: {
               title: '专利列表',

+ 8 - 4
src/utils/constants.js

@@ -231,10 +231,10 @@ sourceId:process.env.NODE_ENV === 'production'?6:1,
 
 //更新周期
 updateCycle:[
-  {
-    label:'每天',
-    value:'day'
-  },
+  // {
+  //   label:'每天',
+  //   value:'day'
+  // },
   {
     label:'每周',
     value:'week'
@@ -244,6 +244,10 @@ updateCycle:[
     value:'month'
   },
   {
+    label:'每季',
+    value:'quarter'
+  },
+  {
     label:'每年',
     value:'year'
   },

+ 124 - 21
src/views/components/import/conditionImport/components/projectListDialog.vue

@@ -12,7 +12,7 @@
         <el-form ref="form" :model="form" :rules="rules" >
           <template v-if="firstShow">
             <div>
-              <el-form-item label="导入到:">
+              <el-form-item label="导入到:" prop="importToType">
                 <el-select v-model="form.importToType" clearable @change="changeImportToType" placeholder="请选择">
                     <el-option
                       v-for="(item,key) in importToTypes"
@@ -157,7 +157,8 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="是否更新" prop="ifUpdate">
+          
+          <el-form-item label="是否更新" prop="ifUpdate" v-if="(!form.isUpdateCriteria || (form.isUpdateCriteria && !update.ifUpdate))&&(!form.patentNos || form.patentNos.length==0)">
             <el-switch
               v-model="form.ifUpdate"
               :active-value="true"
@@ -166,11 +167,11 @@
             >
             </el-switch>
           </el-form-item>
-          <template v-if="form.ifUpdate == true">
+          <template v-if="form.ifUpdate == true && !update.ifUpdate">
             <div>
-              <el-form-item label="更新间隔" prop="dateType">
+              <el-form-item label="更新间隔" prop="updateCycle">
                 <el-select
-                  v-model="form.dateType"
+                  v-model="form.updateCycle "
                   @change="getDateType"
                   clearable
                   placeholder="请选择更新时间间隔"
@@ -185,25 +186,54 @@
                   </el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="选择更新具体时间" v-if="form.dateType">
+              <!-- <el-form-item label="选择更新具体时间" v-if="form.dateType">
                 <myTimeChoose
                   :type="form.dateType"
                   @value="handleData"
                   :cron="form.crons"
                   style="width: 300px"
                 ></myTimeChoose>
-              </el-form-item>
+              </el-form-item> -->
             </div>
           </template>
+          <el-form-item label="立即导入" prop="importNow" v-if="form.isUpdateCriteria && (!form.patentNos || form.patentNos.length==0)">
+            <el-switch
+              v-model="form.importNow"
+              :active-value="true"
+              :inactive-value="false"
+              active-color="#13ce66"
+            >
+            </el-switch>
+          </el-form-item>
         </el-form>
         <div class="button">
-          <el-button
-            type="primary"
-            size="small"
-            @click="onSubmit"
-            :loading="btnLoading"
-            >导入</el-button
-          >
+          <template v-if="form.isUpdateCriteria">
+            <el-button
+              v-if="form.importToType == 0"
+              type="primary"
+              size="small"
+              @click="onSubmit(2)"
+              :loading="btnLoading2"
+              >保存定期更新条件</el-button
+            >
+          </template>
+          <template v-else>
+            <el-button
+              v-if="form.importToType == 0"
+              type="primary"
+              size="small"
+              @click="onSubmit(2)"
+              :loading="btnLoading2"
+              >仅保存为定期更新条件</el-button
+            >
+            <el-button
+              type="primary"
+              size="small"
+              @click="onSubmit(1)"
+              :loading="btnLoading"
+              >导入</el-button
+            >
+          </template>
           <el-button size="small" @click="handleClose">取消</el-button>
         </div>
       </div>
@@ -221,6 +251,7 @@ export default {
     return {
       title: "",
       btnLoading: false,
+      btnLoading2:false,
       dialogVisible: false,
       importToTypes:{
           0: "专题库",
@@ -235,8 +266,16 @@ export default {
           },
           loading:false,
       },
-      rules:{},
+      rules:{
+        importToId: [
+          {required: true, message: '请选择', trigger: 'change'},
+        ],
+        importToType: [
+          {required: true, message: '请选择', trigger: 'change'},
+        ],
+      },
       firstShow:true,
+      update:{}
     };
   },
   watch: {},
@@ -245,22 +284,46 @@ export default {
   mounted() {
   },
   methods: {
-    open(form) {
+    async open(form) {
       this.form = {
         ...form,
       };
       if (this.form.importToType) {
         this.title = `导入到${this.importToTypes[this.form.importToType]}`;
         this.firstShow = false
+        this.rules = {}
       } else {
           this.title = `导入专利`
           this.firstShow = true
+          this.rules={
+            importToId: [
+              {required: true, message: '请选择', trigger: 'change'},
+            ],
+            importToType: [
+              {required: true, message: '请选择', trigger: 'change'},
+            ],
+          }
       };
-      if (this.form.importToId) {
-
+      if (this.form.importToId && this.form.importToType == 0) {
+        await this.getUpdateCycle()
       }
+      if(this.form.isUpdateCriteria){
+        this.title = '保存定期更新条件'
+        this.$set(this.form,'ifUpdate',true)
+      }
+      
       this.dialogVisible = true;
     },
+    async getUpdateCycle(){
+        var params = {
+            projectId:this.form.importToId
+        }
+        await this.$api.queryProjectQuartz(params).then(res=>{
+            if(res.code == 200){
+                this.update = res.data
+            }
+        })
+    },
     changeImportToType(val){
       this.ods = {
         name:'',
@@ -394,7 +457,7 @@ export default {
       this.dialogVisible = false;
     },
     //导入
-    onSubmit() {
+    onSubmit(type) {
       this.$refs.form.validate((valid) => {
         if (valid) {
           var importContent = []
@@ -429,18 +492,58 @@ export default {
                 }
             }
             // console.log(this.form)
-            this.addImportTask(this.form)
+            if(type == 1){
+               this.addImportTask(this.form)
+            }
+            else if(type == 2){
+              this.addUpdateCriteria(this.form)
+            }
+           
         }
       });
     },
+    //保存定期更新条件
+    addUpdateCriteria(form){
+      if(form.importNow){
+        this.addImportTask(this.form)
+        return
+      }
+      var conditionImport = this.$s.getSession('conditionImport')
+      var params = {
+        importToId:form.importToId,
+        updateCycle:form.updateCycle,
+        importContent:form.importContent,
+        ifUpdate:form.ifUpdate,
+        searchCondition:form.searchCondition,
+        searchSetting:conditionImport?JSON.stringify(conditionImport):'',
+        DBType:form.DBType,
+        fieldDTOS:form.fieldDTOS
+      }
+      this.btnLoading2 = true
+      this.$api.addQuartzCondition(params).then(response=>{
+        if(response.code == 200){
+          this.$message.success('定期更新条件保存成功')
+          this.btnLoading2 = false
+          if(form.isUpdateCriteria){
+            this.handleClose()
+          }
+        }
+      }).catch(error=>{
+        this.$message.error('定期更新条件保存失败')
+        this.btnLoading2 = false
+      })
+    },
     
     
     //切换项目
-    changeProjectId(val) {
+     changeProjectId(val) {
       if(!val){
         this.remoteMethod(val)
         return
       }
+      if (this.form.importToId && this.form.importToType == 0) {
+        this.getUpdateCycle()
+      }
       if(this.form.importToId && this.form.importToType != 2){
         this.customFieldId = ''
             //获取所有栏位

+ 3 - 1
src/views/components/import/conditionImport/search.vue

@@ -180,7 +180,9 @@ export default {
               data:data,
               importData:this.importData
             }
-            this.$s.setSession('conditionImport',params)
+            this.$s.setSession('conditionImport',{
+                data:data,
+            })
             this.$s.setSession('queryParams',params)
             // this.$s.setSession('retrieveRecordId',0)
             // window.open(router.href, '_blank');

+ 2 - 2
src/views/components/import/conditionImport/searchResult.vue

@@ -16,13 +16,13 @@
         <!-- <div style="max-width:calc(100% - 620px)">
           <p><span>条件:</span>{{ searchData.searchCondition }}</p>
         </div> -->
-        <div style="max-width: 800px;margin-top: 0px;display: flex;justify-content: center;align-items: center;" v-if="condition.component != 'patentNoSearch'">
+        <div style="max-width: 850px;margin-top: 0px;display: flex;justify-content: center;align-items: center;" v-if="condition.component != 'patentNoSearch'">
           <search :field="field" :searchResult="true" :searchValue="false" :countryList="queryParams.countryList"
             @search="search"></search>
           <p><el-link style="width: 50px;color: #409EFF;" @click="searches">检索式</el-link></p>
         </div>
         <div>
-          <el-button type="primary" size="small" @click="importToProject">导入专利</el-button>
+          <el-button type="primary" size="small" @click="importToProject">{{condition.isUpdateCriteria?'保存定期更新条件':'导入专利'}}</el-button>
           <el-button size="small" type="warning" @click="handleFieldManage">显示栏位管理</el-button>
         </div>
       </el-header>

+ 84 - 0
src/views/components/import/task/components/dialog/errorMessage.vue

@@ -0,0 +1,84 @@
+<template>
+  <div>
+    <el-dialog
+      title="错误日志"
+      :visible.sync="visible"
+      width="500px"
+      :before-close="handleClose"
+      :append-to-body="true" 
+      :close-on-click-modal="false"
+    >
+        <div style="height:calc(100vh - 250px);overflow:auto" v-infinite-scroll="load" class="errorMessage1">
+            <div v-for="(item,index) in tableData" :key="index" class='errorMessage'>
+                <span style="color:blue">{{item.patentNo}}</span>
+                <span>{{item.errorName}}</span>
+            </div>
+        </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+        tableData:[],
+        visible:false,
+        queryParams:{
+            size:10,
+            current:0
+        },
+        total:1
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    open(taskId){
+        this.tableData = []
+        this.queryParams={
+            size:10,
+            current:0,
+            taskId:taskId
+        }
+        this.visible = true
+    },
+    handleClose(){
+        this.visible = false
+    },
+    load(){
+        if(this.total<=this.tableData.length){
+            return 
+        }
+        this.queryParams.current += 1
+        this.$api.getPatentImportLog(this.queryParams).then(response=>{
+            if(response.code == 200){
+                var data = response.data.data
+                this.tableData = this.tableData.concat(data)
+                this.total = response.data.total
+            }
+        }).catch(error=>{
+            this.total = 0
+        })
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.errorMessage{
+    font-size: 16px;
+    margin: 5px;
+}
+.errorMessage1:empty{
+    text-align: center;
+}
+.errorMessage1:empty::after{
+    content:'暂无数据';
+    color:#909399;
+   
+}
+</style>

+ 52 - 7
src/views/components/import/task/components/index.vue

@@ -18,8 +18,9 @@
           <el-table-column v-for="item in columnList.filter(item => !item.ifHidden)" :key="item.value" :label="item.name"
             :prop="item.value" :min-width="item.value == 'percentage' ? '200' : '100'" align="center" :sortable="item.ifSort?'custom':false">
             <template slot-scope="scope">
-              <div v-if="item.value == 'type'"
-                v-html="$commonJS.getColumnData(scope.row, item, null, { data: importType })">
+              <div v-if="item.value == 'type'">
+                <span v-html="$commonJS.getColumnData(scope.row, item, null, { data: importType })"></span>
+                <span style="margin-left:10px"><el-button type="text" size="small" @click="checkDetail(scope.row)">查看{{scope.row.fileGuid?'文件信息':'导入内容'}}</el-button></span>
               </div>
               <div v-else-if="item.value == 'state'"
                 v-html="$commonJS.getColumnData(scope.row, item, null, { data: state })">
@@ -45,12 +46,12 @@
                         <i class="el-icon-document"></i>
                         </el-tooltip>  
                     </el-link> -->
-                <el-link class="margin-left_10" type="primary" @click.native="handleDownload(scope.row)"
+                <!-- <el-link class="margin-left_10" type="primary" @click.native="handleDownload(scope.row)"
                   v-if="(scope.row.fileGuid && (scope.row.state !== 0 || scope.row.state !== 1))">
                   <el-tooltip class="item" effect="dark" content="下载" placement="top">
                     <i class="iconfont icon-xiazai"></i>
                   </el-tooltip>
-                </el-link>
+                </el-link> -->
 
                 <el-link class="margin-left_10" type="primary" @click="updateImportTaskState(scope.row, 4)"
                   v-if="scope.row.state == 1 || scope.row.state == 0">
@@ -64,18 +65,25 @@
                     <i class="iconfont icon-zanting1"></i>
                   </el-tooltip>
                 </el-link>
-                <el-link class="margin-left_10" type="primary" v-if="scope.row.taskType == 1"
+                <!-- <el-link class="margin-left_10" type="primary" v-if="scope.row.taskType == 1"
                   @click="updateLog(scope.row)">
                   <el-tooltip class="item" effect="dark" content="更新记录" placement="top">
                     <i class="iconfont icon-banbengengxinjilu" style="font-size:18px"></i>
                   </el-tooltip>
-                </el-link>
+                </el-link> -->
                 <el-link class="margin-left_10" type="danger" @click.native="updateImportTaskState(scope.row, 5)"
                   v-if="(scope.row.state != 2 && scope.row.state != 5) || scope.row.taskType == 1">
                   <el-tooltip class="item" effect="dark" content="取消" placement="top">
                     <i class="iconfont icon-quxiaorenwu1"></i>
                   </el-tooltip>
                 </el-link>
+
+                <el-link class="margin-left_10" type="primary" @click.native="errorMessage(scope.row, 5)">
+                  <el-tooltip class="item" effect="dark" content="错误日志" placement="top">
+                    <i class="iconfont icon-banbengengxinjilu"></i>
+                  </el-tooltip>
+                </el-link>
+                
               </div>
             </template>
           </el-table-column>
@@ -86,14 +94,20 @@
           @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
       </el-footer>
     </el-container>
+
+
+    <errorMessage ref="errorMessage"></errorMessage>
   </div>
 </template>
 
 <script>
 import { mapGetters } from "vuex";
 import { downLoad2 } from '@/utils'
+import errorMessage from './dialog/errorMessage.vue';
 export default {
-  components: {},
+  components: {
+    errorMessage
+  },
   props: {
     importToId: '',
     importToType: null,
@@ -356,6 +370,37 @@ export default {
     details() {
 
     },
+    //错误日志
+    errorMessage(row){
+      this.$refs.errorMessage.open(row.id)
+    },
+    //查看检索式或者文件
+    checkDetail(row){
+      var title = ''
+      var content = ''
+      if(row.fileGuid){
+        title = '查看文件信息'
+        content = '文件名称:'+row.systemFile?.originalName
+        this.$confirm(content, title, {
+          confirmButtonText: '下载',
+          cancelButtonText: '关闭',
+          dangerouslyUseHTMLString: true,
+        }) .then(() => {
+            this.handleDownload(row)
+            this.$message.info('正在下载中...')
+          })
+          .catch(action => {
+           
+          });
+      }else{
+        title = '查看导入信息'
+        content=row.searchCondition
+        this.$alert(content,title, {
+          dangerouslyUseHTMLString: true
+        });
+      }
+ 
+    },
     //下载附件
     handleDownload(row) {
       downLoad2(row.fileGuid)

+ 3 - 3
src/views/project/components/drawer/form.vue

@@ -129,19 +129,19 @@
               </el-col>
               <el-col :span="12" v-if="ruleForm.ifUpdate">
                 <el-form-item label="更新周期" required>
-                  <el-select v-model="ruleForm.updateTime" @change="getDateType" placeholder="请选择更新周期" class="width_100">
+                  <el-select v-model="ruleForm.updateCycle" @change="getDateType" placeholder="请选择更新周期" class="width_100">
                     <el-option v-for="item in $constants.updateCycle" :key="item.value" :value="item.value" :label="item.label"></el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row :gutter="24">
+            <!-- <el-row :gutter="24">
               <el-col :span="24">
                 <el-form-item label="更新具体时间" v-if="ruleForm.ifUpdate && ruleForm.updateTime" >
                   <my-Time-Choose :type="ruleForm.updateTime" @value="getValue" :cron="ruleForm.crons" style="width:300px"></my-Time-Choose>
                 </el-form-item>
               </el-col>
-            </el-row>
+            </el-row> -->
             <el-form-item label="附件" prop="systemFileList">
               <myUpload :file-list="ruleForm.systemFileList" @on-change="onchangeFile" @on-remove="onRemove" style="height: 180px;" :autoUpload="true"></myUpload>
             </el-form-item>

+ 30 - 0
src/views/project/components/updateCriteria/index.vue

@@ -0,0 +1,30 @@
+<template>
+  <div class="height_100">
+    <updateCriteria :projectId="projectId"></updateCriteria>
+  </div>
+</template>
+
+<script>
+import updateCriteria from './updateCriteria.vue';
+export default {
+  components: {
+    updateCriteria
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {
+    projectId(){
+        return this.$route.query.projectId
+    }
+  },
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 312 - 0
src/views/project/components/updateCriteria/updateCriteria.vue

@@ -0,0 +1,312 @@
+<template>
+  <div class="height_100">
+    <el-container>
+        <el-header>
+            <div style="width:100%; padding:20px;display:flex;align-items: center;justify-content: space-between;">
+                <div>
+                    <span v-if="!update.ifUpdate">是否定期更新:{{ update.ifUpdate?'是':'否' }}</span>
+                    <span v-else>更新周期:<span>{{ getUpdateCycleName(update.updateCycle) }}</span></span>
+                    <span style="margin-left:10px"><i class="iconfont icon-bianji" @click="editUpdate"></i></span>
+                </div>
+                <div style="">
+                    <el-button type="primary" size="small" @click="add">添加</el-button>
+                </div>
+            </div>
+        </el-header>
+        <el-main v-DivHeight="getDivHeight">
+            <el-table
+                ref="table"
+                :data="tableData"
+                row-key="id"
+                style="width: 100%"
+                :maxHeight="tableHeight - 40"
+                v-loading="loading"
+                @selection-change="handleSelectionChange"
+            >
+                <el-table-column type="selection" width="55" :reserve-selection="true">
+
+                </el-table-column>
+                <el-table-column prop="searchCondition" label="检索条件"></el-table-column>
+                <el-table-column prop="dbType" label="检索范围" width="140">
+                    <template slot-scope="scope">
+                    <div>
+                        {{ DBType[scope.row.dbType] }}
+                    </div>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="ifUpdate" label="下一次是否更新" width="120">
+                    <template slot-scope="scope">
+                    <div>
+                        <el-switch
+                            v-model="scope.row.ifUpdate"
+                            @change="updateMessage(scope.row)"
+                            active-text="是"
+                            inactive-text="否">
+                        </el-switch>
+                    </div>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="createName" label="创建人" width="120">
+                    <template slot-scope="scope">
+                    <div>
+                        {{ scope.row.createName }}
+                    </div>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="createTime" label="创建时间" width="120">
+                    <template slot-scope="scope">
+                    <div>
+                        {{ scope.row.createTime }}
+                    </div>
+                    </template>
+                </el-table-column>
+                <el-table-column label="操作" width="140">
+                    <template slot-scope="scope">
+                        <div class="icon">
+                            <!-- <span @click="editSearch(scope.row)" class="margin-left_10">
+                            <el-tooltip class="item" effect="dark" content="编辑" placement="top">
+                                <i class="iconfont icon-bianji"></i>
+                            </el-tooltip>
+                            </span> -->
+                            <span @click="delSearch(scope.row)" class="margin-left_10">
+                                <el-tooltip class="item" effect="dark" content="删除" placement="top">
+                                    <i class="iconfont icon-shanchu"></i>
+                                </el-tooltip>
+                            </span>
+                        </div>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-main>
+        <el-footer class="pagination" style="display:flex;justify-content:space-between;align-items:center">
+          <div style="display:flex;align-items:center">
+            <span v-if="multipleSelection.length > 0">
+              已勾选 <b>{{ multipleSelection.length }}</b> 条
+            </span>
+            <div v-show="multipleSelection.length" class="margin-left_10">
+              <el-button type="primary" size="small" @click="del">删除</el-button>
+            </div>
+          </div>
+          <div>
+            <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+              :current-page.sync="queryParams.current" :page-size.sync="queryParams.size"
+              @current-change="handleCurrentChange" @size-change="changeSize" :total="total">
+            </el-pagination>
+          </div>
+
+        </el-footer>
+    </el-container>
+
+    <el-dialog title="编辑更新周期" :visible.sync="dialog.showDialog" width="500px" :close-on-click-modal="false" @close="handleClose" append-to-body>
+        <el-form :model="form" ref="form" label-width="120px" class="demo-ruleForm">
+            <el-form-item label="是否定期更新" prop="ifUpdate">
+                <el-switch
+                    v-model="form.ifUpdate"
+                    active-text="是"
+                    inactive-text="否">
+                </el-switch>
+            </el-form-item>
+            <el-form-item label="更新间隔" v-if="form.ifUpdate" prop="updateCycle">
+                <el-select
+                  v-model="form.updateCycle"
+                  clearable
+                  placeholder="请选择更新时间间隔"
+                  style="margin-right: 20px"
+                >
+                  <el-option
+                    v-for="item in $constants.updateCycle"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="handleClose">取 消</el-button>
+            <el-button type="primary" :loading="dialog.btnLoading" @click="submit">确 定</el-button>
+        </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getTableHeight } from '@/views/components/mixins'
+export default {
+  components: {},
+  props: {
+    projectId:{}
+  },
+  mixins:[getTableHeight],
+  data() {
+    return {
+        DBType:{
+            'CN':'中国',
+            "WD":"世界"
+        },
+        update:{
+            ifUpdate:false
+        },
+        tableData:[],
+        multipleSelection:[],
+        loading:false,
+        queryParams:{
+            current:1,
+            size:10,
+            projectId:this.projectId
+        },
+        total:0,
+        dialog:{
+            showDialog:false,
+            btnLoading:false
+        },
+        form:{},
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getUpdateCycle()
+    this.getUpdateCriteria()
+  },
+  methods: {
+    add(){
+        var form = {
+            importToId:this.projectId,
+            importToType:0,
+            type:4,
+            ifUpdate:this.update.ifUpdate,
+            isUpdateCriteria:true
+        }
+        this.$commonJS.toImportParent(form,4)
+    },
+    getUpdateCycle(){
+        var params = {
+            projectId:this.projectId
+        }
+        this.$api.queryProjectQuartz(params).then(res=>{
+            if(res.code == 200){
+                this.update = res.data
+            }
+        })
+    },
+    getUpdateCycleName(updateCycle){
+        var arr = this.$constants.updateCycle
+        var obj = arr.find(item=>{
+            return item.value == updateCycle
+        })
+        if(obj){
+            return obj.label
+        }
+        return ''
+    },
+    getUpdateCriteria(){
+        this.loading = true
+        this.$api.queryQuartzCondition(this.queryParams).then(response=>{
+            if(response.code == 200){
+                this.tableData = response.data.data
+                this.total = response.data.total
+                this.loading = false
+            }
+        }).catch(error=>{
+            this.tableData = []
+            this.loading = false
+        })
+    },
+    handleSelectionChange(val){
+        this.multipleSelection = val
+    },
+    handleCurrentChange(val){
+        this.queryParams.current = val
+        this.getUpdateCriteria()
+    },
+    //切换页大小
+    changeSize(val){
+      this.queryParams.size = val
+      this.queryParams.current = 1
+      this.getUpdateCriteria()
+    },
+    del(){
+        var ids = this.multipleSelection.map(item=>{
+            return item.id
+        })
+        this.removeSearchRecords(ids,1)
+    },
+    delSearch(row){
+        this.removeSearchRecords([row.id])
+    },
+    removeSearchRecords(ids,type){
+        this.$confirm('确认删除本条数据吗?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+        }).then(() => {
+            this.$api.removeQuartzCondition({ids:ids}).then(response=>{
+                if(response.code == 200){
+                    this.$message.success('删除成功')
+                    this.getUpdateCriteria()
+                    if(type){
+                        this.multipleSelection = []
+                        this.$refs.table.clearSelection();
+                    }else{
+                        var id = response.data.data[0]
+                        var index = this.multipleSelection.findIndex(item=>{
+                            return item.id == id
+                        })
+                        if(index!=-1){
+                            this.multipleSelection.splice(index,1)
+                        }
+                    }
+                    
+                }
+            }).catch(error=>{
+                // this.$message.error('删除失败')
+            })
+        })
+    },
+    updateMessage(row){
+        this.$api.updateQuartzCondition(row).then(response=>{
+            if(response.code == 200){}
+        }).catch(error=>{
+            this.$message.error('修改失败')
+            this.$set(row,'ifUpdate',!row.ifUpdate)
+        })
+    },
+    editUpdate(){
+        this.form = {
+            ...this.update
+        }
+        this.dialog.showDialog = true
+    },
+    handleClose(){
+        this.dialog.btnLoading = false
+        this.dialog.showDialog = false
+    },
+    submit(){
+        this.dialog.btnLoading = true
+        var form = {
+            ...this.form,
+            projectId:this.projectId
+        }
+        if(!form.ifUpdate){
+            form.updateCycle = ''
+        }
+        this.$api.setProjectQuartz(form).then(response=>{
+            if(response.code == 200){
+                this.$message.success('更新成功')
+                this.update = response.data
+                this.handleClose()
+                this.getUpdateCycle()
+            }
+        }).catch(error=>{
+            this.$message.error('更新失败')
+            this.dialog.btnLoading = false
+        })
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 1 - 0
src/views/project/components/view/card.vue

@@ -21,6 +21,7 @@
                     </el-dropdown>
                   </el-dropdown-item>
                   <el-dropdown-item command="12">自定义栏位管理</el-dropdown-item>
+                  <el-dropdown-item command="15">定期更新条件</el-dropdown-item>
                 <el-dropdown-item command="11">任务分配</el-dropdown-item>
                 <el-dropdown-item command="14">导入导出历史</el-dropdown-item>
                   <el-dropdown-item command="3">任务清单</el-dropdown-item>

+ 1 - 0
src/views/project/components/view/table.vue

@@ -37,6 +37,7 @@
                   </el-dropdown>
                 </el-dropdown-item>
                 <el-dropdown-item command="12">自定义栏位管理</el-dropdown-item>
+                <el-dropdown-item command="15">定期更新条件</el-dropdown-item>
                 <el-dropdown-item command="11">任务分配</el-dropdown-item>
                 <el-dropdown-item command="14">导入导出历史</el-dropdown-item>
                 <el-dropdown-item command="3">任务清单</el-dropdown-item>

+ 12 - 0
src/views/project/index.vue

@@ -470,11 +470,23 @@ export default {
         case '14'://导入导出历史
           this.importAndExportHistory(row)
           break
+        case '15'://定期更新条件
+          this.updateCriteria(row)
+          break
         case 'e'://编辑
           this.handleEdit(row)
           break
       }
     },
+    //定期更新条件
+    updateCriteria(row){
+      this.$router.push({
+        path: "/updateCriteria",
+        query:{
+          projectId:row.id
+        }
+      });
+    },
     //导入导出历史
     importAndExportHistory(row){
       this.$router.push({