Browse Source

Merge branch 'dev' of http://172.16.100.139/new-business/drp-web into dev

002390 1 year ago
parent
commit
69310cf8c3

+ 3 - 3
src/api/business/bid/biding.js

@@ -1,11 +1,11 @@
 import request from "@/utils/request";
 
 
-export function getBidingInfo(code) {
+export function getBidingInfo(param) {
   return request({
     url: '/mk/bid/biding/pageQuery',
-    method: 'post',
-    data: code
+    method: 'get',
+    params: param
   })
 }
 

+ 18 - 0
src/api/business/bid/rulesDetail.js

@@ -0,0 +1,18 @@
+import request from "@/utils/request";
+
+
+// export function pageQuery(param) {
+//   return request({
+//     url: '/mk/bid/subscriptionRule/pageQuery',
+//     method: 'get',
+//     params: param
+//   })
+// }
+
+export function update(data) {
+  return request({
+    url: '/mk/bid/subscriptionRule/update',
+    method: 'post',
+    data: data
+  })
+}

+ 55 - 6
src/api/business/bid/subscriptionRules.js

@@ -1,18 +1,67 @@
 import request from "@/utils/request";
 
 
-export function getSubscriptionRules(code) {
+export function pageQuery(param) {
   return request({
-    url: '/mk/bid/newsletter/pageQuery',
+    url: '/mk/bid/subscriptionRule/pageQuery',
+    method: 'get',
+    params: param
+  })
+}
+
+export function updateState(data) {
+  return request({
+    url: '/mk/bid/subscriptionRule/updateState',
     method: 'post',
-    data: code
+    data: data
   })
 }
 
-export function isStop(param) {
+export function updateById(data) {
   return request({
-    url: '/mk/bid/newsletter/updateState',
+    url: '/mk/bid/subscriptionRule/updateById',
     method: 'post',
-    data: param
+    data: data
   })
 }
+
+export function insert(data) {
+  return request({
+    url: '/mk/bid/subscriptionRule/insert',
+    method: 'post',
+    data: data
+  })
+}
+
+export function queryById(url) {
+  return request({
+    url: `/mk/bid/subscriptionRule/queryById/${url}`,
+    method: 'get',
+    // params: param
+  })
+}
+
+export function cityQuery() {
+  return request({
+    url: `/mk/bid/subscriptionRule/cityQuery`,
+    method: 'get',
+  })
+}
+
+export function provinceQuery() {
+  return request({
+    url: `/mk/bid/subscriptionRule/provinceQuery`,
+    method: 'get',
+  })
+}
+
+export function getUserList() {
+  return request({
+    url: `/system/user/list`,
+    method: 'get',
+  })
+}
+
+
+
+

+ 132 - 6
src/views/business/bid/detail/bidingInfoDetail.vue

@@ -3,17 +3,17 @@
   <h1>招投标公告详情</h1>
   <el-descriptions class="margin-top" title="公告基本信息" :column="2"  border>
     <el-descriptions-item label="标题" :span="2">{{this.areaObj.infoTitle}}</el-descriptions-item>
-    <el-descriptions-item label="一级公告类型">
-      {{this.areaObj.infoType}}
+    <el-descriptions-item label="一级公告类型" >
+      {{getChangeType(this.areaObj.infoType)}}<!--调用getChangeType方法-->
     </el-descriptions-item>
     <el-descriptions-item label="二级公告类型" >
-      {{this.areaObj.infoTypeSegment}}
+      {{getChangeType1(this.areaObj.infoTypeSegment)}}
     </el-descriptions-item>
     <el-descriptions-item label="项目所属地区" >
       {{this.areaObj.areaProvince+this.areaObj.areaCity}}
     </el-descriptions-item>
-    <el-descriptions-item label="项目名称" >{{this.areaObj.infoTypeSegment}}</el-descriptions-item>
-    <el-descriptions-item label="招标方式" >{{this.areaObj.biddingType}}</el-descriptions-item>
+    <el-descriptions-item label="项目名称" >{{this.areaObj.infoTitle}}</el-descriptions-item>
+    <el-descriptions-item label="招标方式" >{{getChangeType2(this.areaObj.biddingType)}}</el-descriptions-item>
     <el-descriptions-item label="招标预算" >{{this.areaObj.bidWinnerAmount}}</el-descriptions-item>
     <el-descriptions-item label="发布时间" >{{this.areaObj.infoPublishTime}}</el-descriptions-item>
     <el-descriptions-item label="投标开始至截止日期" >{{this.areaObj.tenderBeginTime}}至{{this.areaObj.tenderEndTime}}</el-descriptions-item>
@@ -32,26 +32,152 @@
   </el-descriptions>
   <el-descriptions class="margin-top" title="产品信息" :column="2"  border>
     <el-descriptions-item label="产品" :span="2">{{this.areaObj.infoTitle}}</el-descriptions-item>
-    <el-descriptions-item label="附件">{{this.areaObj.infoNewFile}} </el-descriptions-item>
+    <el-descriptions-item label="附件">
+      <a :href="this.areaObj.infoFileUrl" target="_blank" class="buttonText" style="color: #00afff">
+        {{ this.areaObj.infoFileName}}</a>
+    </el-descriptions-item>
   </el-descriptions>
   <el-descriptions class="margin-top" title="公告详情信息"  border>
     <el-descriptions-item label="公告原文连接" ></el-descriptions-item>
   </el-descriptions>
+  <el-button type="primary" @click="returnPage">返回</el-button>
 </div>
 </template>
 <script>
+import {getUser} from "@/api/business/bid/subscriptionRules";
+
 export default {
   data() {
     return {
       areaObj:'',
+      bidType: [
+        {
+          value: '0',
+          label: '公开招标'
+        },
+        {
+          value: '4',
+          label: '询比价'
+        },
+        {
+          value: '2',
+          label: '竞价'
+        },
+        {
+          value: '1',
+          label: '邀请招标'
+        },
+        {
+          value: '3',
+          label: '定点采购'
+        },
+        {
+          value: '5',
+          label: '公开寻源'
+        },
+        {
+          value: '6',
+          label: '电子反拍'
+        }
+      ],
+      noticeTwoType: [
+        {
+          value: '1',
+          label: '采购意向'
+        },
+        {
+          value: '2',
+          label: '招投标'
+        },
+        {
+          value: '3',
+          label: '招标'
+        },
+        {
+          value: '5',
+          label: '变更公告'
+        },
+        {
+          value: '10',
+          label: '中标候选人'
+        },
+        {
+          value: '11',
+          label: '中标结果'
+        },
+        {
+          value: '12',
+          label: '合同'
+        },
+        {
+          value: '13',
+          label: '验收公告'
+        },
+      ],
+      noticeOneType:[
+        {
+          value: '0',
+          label: '公告'
+        },
+        {
+          value: '1',
+          label: '预告'
+        },
+        {
+          value: '2',
+          label: '变更'
+        },
+        {
+          value: '3',
+          label: '结果'
+        },
+        {
+          value: '5',
+          label: '其他'
+        }
+      ],
     };
   },
   created() {
     //如果路由参数存在
     if (this.$route.query) {
       this.areaObj = this.$route.query;
+      this.areaObj.map((v) => {
+        const ins = JSON.parse(v.infoNewFile)
+        if (ins.length) {
+          v.infoFileName = ins[0].infoFileName
+          v.infoFileUrl = ins[0].infoFileUrl
+        }
+      })
     }
   },
+  methods:{
+
+    returnPage(){
+      this.$router.go(-1)
+    },
+    getChangeType(e) {
+      for (var i = 0; i < this.noticeOneType.length; i++) {
+        if (this.noticeOneType[i].value === e) {
+          return this.noticeOneType[i].label;
+        }
+      }
+    },
+    getChangeType1(e) {
+      for (var i = 0; i < this.noticeTwoType.length; i++) {
+        if (this.noticeTwoType[i].value === e) {
+          return this.noticeTwoType[i].label;
+        }
+      }
+    },
+    getChangeType2(e) {
+      for (var i = 0; i < this.bidType.length; i++) {
+        if (this.bidType[i].value === e) {
+          return this.bidType[i].label;
+        }
+      }
+    },
+  }
 }
 </script>
 <style lang="scss" scoped>

+ 143 - 119
src/views/business/bid/index/biding.vue

@@ -3,7 +3,7 @@
     <el-form ref="form" :model="form" :inline="true" >
       <el-row :gutter="24" style="height: 58px">
         <el-col :span="2">
-          <el-select v-model="form.selectFull" placeholder="请选择" @clear="reset" clearable >
+          <el-select v-model="queryParams.selectFull" placeholder="请选择" @clear="reset" clearable >
             <el-option
               v-for="item in selectOptions"
               :key="item.value"
@@ -14,7 +14,7 @@
           </el-select>
         </el-col>
         <el-col :span="6">
-          <el-input v-model="form.input" placeholder="请输入内容" @clear="reset" clearable></el-input>
+          <el-input v-model="queryParams.input" placeholder="请输入内容" @clear="reset" clearable></el-input>
         </el-col>
         <el-col :span="2">
           <el-button type="primary" size="small" @click="btnQuery" icon="el-icon-search">搜索</el-button>
@@ -22,104 +22,109 @@
         <el-col :span="2">
           <el-button type="info" size="small" icon="el-icon-refresh" @click="btnReset">重置</el-button>
         </el-col>
-      </el-row>
-      <el-row :gutter="24">
-        <el-col :span="8">
-          <el-form-item label="项目所属城市">
-            <el-select v-model="form.city" placeholder="请选择" @clear="reset" clearable>
-              <el-option
-                v-for="item in cityOptions"
-                :key="item.value"
-                :label="item.value"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="发布时间" @clear="reset" clearable>
-            <el-date-picker
-              v-model="form.releasedTime"
-              type="daterange"
-              range-separator="-"
-              format="yyyy 年 MM 月 dd 日"
-              value-format="yyyy-MM-dd"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              clearable
-              @change="handleInputClear">
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="获取标书截至时间">
-            <el-date-picker
-              v-model="form.getTime"
-              type="date"
-              format="yyyy 年 MM 月 dd 日"
-              value-format="yyyy-MM-dd"
-              placeholder="选择日期"
-              clearable @change="handleInputClear">
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row :gutter="24">
-        <el-col :span="8">
-          <el-form-item label="投标截止日期" >
-            <el-date-picker
-              v-model="form.endTime"
-              type="date"
-              format="yyyy 年 MM 月 dd 日"
-              value-format="yyyy-MM-dd"
-              placeholder="选择日期"
-              @change="handleInputClear"
-              clearable>
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="招标单位">
-            <el-input v-model="form.zhaoBiaoUnit" placeholder="请输入内容" @clear="reset" clearable ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="中标单位">
-            <el-input v-model="form.zhongBiaoUnit" placeholder="请输入内容" @clear="reset" clearable></el-input>
-          </el-form-item>
+        <el-col :span="2">
+          <el-button type="info" size="small" @click="isShow=!isShow">高级查询</el-button>
         </el-col>
       </el-row>
-      <el-row :gutter="24">
-        <el-col :span="6">
-          <el-form-item label="金额区间" >
-            <el-input v-model="form.minPrice" placeholder="最小值" @clear="reset" clearable></el-input>
+      <div v-show="isShow" >
+        <el-row :gutter="24">
+          <el-col :span="8">
+            <el-form-item label="项目所属城市">
+              <el-select v-model="queryParams.city" placeholder="请选择" @clear="reset" clearable>
+                <el-option
+                  v-for="item in cityOptions"
+                  :key="item.value"
+                  :label="item.value"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="发布时间" >
+              <el-date-picker
+                v-model="queryParams.releasedTime"
+                type="daterange"
+                range-separator="-"
+                format="yyyy 年 MM 月 dd 日"
+                value-format="yyyy-MM-dd"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                clearable
+                @change="handleInputClear(queryParams.releasedTime)">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="获取标书截至时间">
+              <el-date-picker
+                v-model="queryParams.getTime"
+                type="date"
+                format="yyyy 年 MM 月 dd 日"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期"
+                clearable @change="handleInputClear">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="8">
+            <el-form-item label="投标截止日期" >
+              <el-date-picker
+                v-model="queryParams.endTime"
+                type="date"
+                format="yyyy 年 MM 月 dd 日"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期"
+                @change="handleInputClear"
+                clearable>
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="招标单位">
+              <el-input v-model="queryParams.zhaoBiaoUnit" placeholder="请输入内容" @clear="reset" clearable ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="中标单位">
+              <el-input v-model="queryParams.zhongBiaoUnit" placeholder="请输入内容" @clear="reset" clearable></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24">
+          <el-col :span="6">
+            <el-form-item label="金额区间" >
+              <el-input v-model="queryParams.minPrice" placeholder="最小值"  clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="1">
+            <div style="text-align: center">-</div>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item style="padding-left: 70px">
+              <el-input v-model="queryParams.maxPrice" placeholder="最大值" @clear="reset()" clearable ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item label="招标方式">
+            <el-checkbox-group v-model="queryParams.bidType">
+              <el-checkbox v-for="item in bidType" :label="item.value" :key="item.label">{{ item.label }}
+              </el-checkbox>
+            </el-checkbox-group>
           </el-form-item>
-        </el-col>
-        <el-col :span="1">
-          <div style="text-align: center">-</div>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item style="padding-left: 70px">
-            <el-input v-model="form.maxPrice" placeholder="最大值" @clear="reset" clearable ></el-input>
+        </el-row>
+        <el-row>
+          <el-form-item label="公告类型">
+            <el-checkbox-group v-model="queryParams.noticeType">
+              <el-checkbox v-for="item in noticeType" :label="item.value" :key="item.value">{{ item.label }}
+              </el-checkbox>
+            </el-checkbox-group>
           </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-form-item label="招标方式">
-          <el-checkbox-group v-model="form.bidType">
-            <el-checkbox v-for="item in bidType" :label="item.value" :key="item.label">{{ item.label }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-      </el-row>
-      <el-row>
-        <el-form-item label="公告类型">
-          <el-checkbox-group v-model="form.noticeType">
-            <el-checkbox v-for="item in noticeType" :label="item.value" :key="item.value">{{ item.label }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-      </el-row>
+        </el-row>
+      </div>
     </el-form>
     <el-table
       :data="dataList.dataTable"
@@ -133,7 +138,13 @@
         </template>
       </el-table-column>
       <el-table-column prop="xmNumber" label="项目编号" width="100" align="center"></el-table-column>
-      <el-table-column prop="infoTitle" label="项目名称" width="200" align="center"></el-table-column>
+      <el-table-column prop="infoTitle" label="项目名称" width="200" align="center">
+        <template slot-scope="scope">
+          <p style="color: #00afff">
+            {{getChangeType(scope.row.infoTitle)}}<!--调用getChangeType方法-->
+          </p>
+        </template>
+      </el-table-column>
       <el-table-column prop="bidBudget" label="项目预算" width="80" align="center"></el-table-column>
       <el-table-column prop="bidWinnerAmount" label="中标金额" width="80" align="center"></el-table-column>
       <el-table-column prop="address" label="关键字匹配字段" width="120" align="center"></el-table-column>
@@ -203,10 +214,10 @@
       </el-table-column>
       <el-table-column prop="address" label="中标候选人" width="200" align="center"></el-table-column>
       <el-table-column prop="infoTitle" label="产品" width="200" align="center"></el-table-column>
-      <el-table-column prop="infoNewFile" label="公告原文链接" show-overflow-tooltip width="200" align="center">
+      <el-table-column prop="infoNewFile" label="公告原文链接"  show-overflow-tooltip width="200" align="center" >
         <template scope="scope">
-          <a v-if="scope.row.infoNewFile != null && scope.row.infoNewFile != ''" :href="scope.row.infoNewFile" target="_blank" class="buttonText">
-            {{ (JSON.parse(scope.row.infoNewFile))[0] }}</a>
+          <a :href="scope.row.infoFileUrl" target="_blank" class="buttonText" style="color: #00afff">
+            {{ scope.row.infoFileName}}</a>
         </template>
       </el-table-column>
       <el-table-column prop="address" label="操作" align="center">
@@ -244,10 +255,15 @@ export default {
     btnReset(){
     this.reset()
     },
-    reset(){
-      console.log('11111111')
-      Object.assign(this.form, this.$options.data().form)
-      Object.assign(this.dataList, this.$options.data().dataList)
+    reset(val){
+      console.log(val)
+      if(val){
+        Object.assign(this.queryParams, this.$options.data().queryParams)
+        Object.assign(this.dataList, this.$options.data().dataList)
+      }else {
+        Object.assign(this.val, this.$options.data().val)
+      }
+
     },
     getCity(){
       cityQuery().then(res => {
@@ -259,35 +275,41 @@ export default {
       })
     },
     handleSizeChange(val) {
-      this.form.pageSize = val;
+      this.queryParams.pageSize = val;
       this.btnQuery();
     },
     handleCurrentChange(val) {
-      this.form.pageNum = val;
+      this.queryParams.pageNum = val;
       this.btnQuery();
     },
     handleRouter(pramsData) {
       let resolve = this.$router.push({path:'/business/bid/bidingInfo',query:pramsData});
     },
     btnQuery() {
-      // this.text()
       this.getTime()
-      getBidingInfo(this.form).then(res => {
+      getBidingInfo(this.queryParams).then(res => {
         if (res.code == 200) {
-          this.dataList.total = res.data.total;
-          this.dataList.dataTable = res.data.rows;
+          this.dataList.total = res.total;
+          this.dataList.dataTable = res.rows;
+          this.dataList.dataTable.map((v) => {
+            const ins = JSON.parse(v.infoNewFile)
+            if (ins.length) {
+              v.infoFileName = ins[0].infoFileName
+              v.infoFileUrl = ins[0].infoFileUrl
+            }
+          })
         }
       })
     },
     getTime() {
-      if (this.form.releasedTime != "" && this.form.releasedTime != null) {
-        this.form.releasedStartTime = this.form.releasedTime[0]
-        this.form.releasedEndTime = this.form.releasedTime[1]
+      if (this.queryParams.releasedTime != "" && this.queryParams.releasedTime != null) {
+        this.queryParams.releasedStartTime = this.queryParams.releasedTime[0]
+        this.queryParams.releasedEndTime = this.queryParams.releasedTime[1]
       }
     },
     getChangeType(e) {
       for (var i = 0; i < this.noticeType.length; i++) {
-        if (this.noticeType[i].value === e) { //dictValue,dictLabel保持和上面定义一致
+        if (this.noticeType[i].value === e) {
           return this.noticeType[i].label;
         }
       }
@@ -302,11 +324,14 @@ export default {
   },
   data() {
     return {
+      isShow:false,
       dataList: {
         total: null,
         dataTable: [],
       },
-      form: {
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
         releasedTime: [],
         endTime: '',
         getTime: '',
@@ -319,12 +344,11 @@ export default {
         input: '',
         selectFull: '',
         city: '',
-        value: '',
         bidType: [],
         noticeType: [],
-        pageNum: 1,
-        pageSize: 10,
-      }, bidType: [
+      },
+      form: {},
+      bidType: [
         {
           value: '0',
           label: '公开招标'

+ 339 - 58
src/views/business/bid/rulesDetail/detail.vue

@@ -1,21 +1,22 @@
 <template>
 <div>
   <el-card class="box-card" style="background-color: #f2f2f2">
-    <el-form ref="form" :model="form" label-width="150px">
+    <el-form ref="form" :rules="rules" :model="form" label-width="130px">
       <el-row :gutter="24">
         <el-col :span="8">
-          <el-form-item label="编号">
-            <el-input v-model="form.name" :disabled="true"></el-input>
+          <el-form-item label="编号" prop="xmNumber">
+            <el-input v-model="form.xmNumber" :disabled="true" clearable>{{this.areaObj.xmNumber}}</el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="规则名称">
-            <el-input v-model="form.name"></el-input>
+          <el-form-item label="规则名称" prop="subscriptionRulesName">
+            <el-input v-model="form.subscriptionRulesName">{{this.areaObj.subscriptionRulesName}}</el-input>
           </el-form-item>
         </el-col>
+
         <el-col :span="8">
-          <el-form-item label="关键词匹配字段">
-            <el-input v-model="form.name"></el-input>
+          <el-form-item label="招标单位">
+            <el-input v-model="form.zhaoBiaoUnit">{{this.areaObj.zhaoBiaoUnit}}</el-input>
           </el-form-item>
         </el-col>
       </el-row>
@@ -23,83 +24,131 @@
         <el-col :span="8">
           <el-form-item label="发布时间">
             <el-date-picker
-              v-model="value1"
-              type="monthrange"
+              v-model="infoPublishTime"
+              type="datetimerange"
+              value-format="yyyy-MM-dd HH:mm:ss"
               range-separator="至"
               start-placeholder="开始月份"
               end-placeholder="结束月份"
-              size="small">
-            </el-date-picker>
+              >
+            {{this.areaObj.infoPublishTime}}</el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="项目所属省份">
-            <el-input v-model="form.name"></el-input>
+          <el-form-item label="项目所属省份" prop="areaProvince">
+            <el-select v-model="form.areaProvince"  placeholder="请选择" style="width: 100%;">
+              <el-option
+                v-for="item in areaProvinceOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>{{this.areaObj.areaProvince}}
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="项目所属城市">
-            <el-input v-model="form.name"></el-input>
+          <el-form-item label="项目所属城市" prop="areaCity">
+            <el-select v-model="form.areaCity"  placeholder="请选择" style="width: 100%;">
+              <el-option
+                v-for="item in areaCityOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>{{this.areaObj.areaCity}}
+            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="24">
-        <el-col :span="5">
+        <el-col :span="8">
           <el-form-item label="公告类型">
-            <el-select v-model="form.region" placeholder="请选择活动区域">
-              <el-option label="区域一" value="shanghai"></el-option>
-              <el-option label="区域二" value="beijing"></el-option>
+            <el-select v-model="form.infoTypeSegment" multiple placeholder="请选择活动区域" style="width: 100%">
+              <el-option
+                v-for="item in noticeType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="5">
+        <el-col :span="8">
           <el-form-item label="获取标书截止日期">
-            <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;" size="small"></el-date-picker>
+            <el-date-picker
+              type="datetime"
+              placeholder="选择日期"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              v-model="form.bidingEndTime"
+              style="width: 100%;" >{{this.areaObj.bidingEndTime}}</el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col :span="5">
+        <el-col :span="8">
           <el-form-item label="投标截止日期">
-            <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;" size="small"></el-date-picker>
+            <el-date-picker
+              type="datetime"
+              placeholder="选择日期"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              v-model="form.tenderEndTime"
+              style="width: 100%;" >{{this.areaObj.tenderEndTime}}</el-date-picker>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="24">
-        <el-col :span="5">
+        <el-col :span="8">
           <el-form-item label="招标公司类型">
-            <el-select v-model="form.region" placeholder="请选择活动区域">
-              <el-option label="区域一" value="shanghai"></el-option>
-              <el-option label="区域二" value="beijing"></el-option>
+            <el-select v-model="form.zhaoBiaoUnitType" multiple placeholder="请选择活动区域" style="width: 100%;">
+              <el-option
+                v-for="item in zhaoBiaoUnitType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="招标方式">
-            <el-select v-model="form.region" placeholder="请选择活动区域">
-              <el-option label="区域一" value="shanghai"></el-option>
-              <el-option label="区域二" value="beijing"></el-option>
+        <el-col :span="8">
+          <el-form-item label="招标方式" >
+            <el-select v-model="form.biddingType" multiple placeholder="请选择活动区域" style="width: 100%;">
+              <el-option
+                v-for="item in bidType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="标讯关键词">
-            <el-input v-model="form.name"></el-input>
+        <el-col :span="8">
+          <el-form-item label="标讯关键词" prop="bidingKeyword">
+            <el-input v-model="form.bidingKeyword">{{this.areaObj.bidingKeyword}}</el-input>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="24">
-        <el-col :span="5">
+        <el-col :span="8">
           <el-form-item label="排除词">
-
+            <el-input v-model="form.excludeWord">{{this.areaObj.excludeWord}}</el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="企业名称匹配">
-            <el-input v-model="form.name"></el-input>
+        <el-col :span="7" >
+          <el-form-item label="企业名称匹配" prop="unitNameMatch">
+            <el-input v-model="form.unitNameMatch">{{this.areaObj.unitNameMatch}}</el-input>
           </el-form-item>
+
         </el-col>
-        <el-col :span="5">
-          <el-form-item label="标讯推送人">
-            <el-input v-model="form.name"></el-input>
+        <el-col :span="1">
+          <el-button type="primary" @click="returnPage">新增</el-button>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="标讯推送人" prop="subscriptionPusher">
+            <el-select v-model="form.subscriptionPusher" multiple placeholder="请选择" style="width: 100%;">
+              <el-option
+                v-for="item in subscriptionPusher"
+                :key="item.userName"
+                :label="item.nickName"
+                :value="item.userName">
+              </el-option>
+            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
@@ -109,37 +158,269 @@
             type="textarea"
             :rows="2"
             placeholder="请输入内容"
-            v-model="textarea">
+            v-model="form.ruleDescription">
           </el-input>
         </el-form-item>
       </el-row>
-
     </el-form>
+    <el-row :gutter="24" type="flex" justify="end">
+      <el-col :span="4">
+        <el-button type="info" @click="cancel()" >取消</el-button>
+      </el-col>
+      <el-col :span="4">
+        <el-button type="primary" @click="submitForm" >保存</el-button>
+      </el-col>
+    </el-row>
+
   </el-card>
+
 </div>
 </template>
 <script>
+import {cityQuery, insert, provinceQuery, queryById, updateById,getUserList} from "@/api/business/bid/subscriptionRules";
+
 export default {
   data() {
     return {
-
+      userList:[],
+      infoPublishTime:[],
+      areaProvinceOptions:[],
+      areaCityOptions:[],
+      zhaoBiaoUnitType:[
+        {
+          value: '1',
+          label: '医院'
+        },
+        {
+          value: '2',
+          label: '卫生所'
+        },
+      ],
+      subscriptionPusher:[
+        {
+          value: '1',
+          label: '张三'
+        },
+        {
+          value: '2',
+          label: '李四'
+        },
+      ],
+      noticeType: [
+        {
+          value: '1',
+          label: '采购意向'
+        },
+        {
+          value: '2',
+          label: '招投标'
+        },
+        {
+          value: '3',
+          label: '招标'
+        },
+        {
+          value: '5',
+          label: '变更公告'
+        },
+        {
+          value: '10',
+          label: '中标候选人'
+        },
+        {
+          value: '11',
+          label: '中标结果'
+        },
+        {
+          value: '12',
+          label: '合同'
+        },
+        {
+          value: '13',
+          label: '验收公告'
+        },
+      ],
+      bidType: [
+        {
+          value: '0',
+          label: '公开招标'
+        },
+        {
+          value: '4',
+          label: '询比价'
+        },
+        {
+          value: '2',
+          label: '竞价'
+        },
+        {
+          value: '1',
+          label: '邀请招标'
+        },
+        {
+          value: '3',
+          label: '定点采购'
+        },
+        {
+          value: '5',
+          label: '公开寻源'
+        },
+        {
+          value: '6',
+          label: '电子反拍'
+        }
+      ],
+      infoTypeSegmentOptions:[{
+        value: '选项1',
+        label: '黄金糕'
+      }, {
+        value: '选项2',
+        label: '双皮奶'
+      }, {
+        value: '选项3',
+        label: '蚵仔煎'
+      }, {
+        value: '选项4',
+        label: '龙须面'
+      }, {
+        value: '选项5',
+        label: '北京烤鸭'
+      }],
+      areaObj:'',
       form: {
-        name: '',
-        region: '',
-        date1: '',
-        date2: '',
-        delivery: false,
-        type: [],
-        resource: '',
-        desc: ''
+        id:undefined,
+        xmNumber:'',
+        keywordMatch:'',
+        subscriptionRulesName:'',
+        areaCity:'',
+        areaProvince:'',
+        infoTypeSegment:[],
+        bidingEndTime:'',
+        tenderEndTime:'',
+        zhaoBiaoUnitType:[],
+        biddingType:[],
+        bidingKeyword:'',
+        excludeWord:'',
+        unitNameMatch:'',
+        zhaoBiaoUnit:'',
+        subscriptionPusher:[],
+        ruleDescription:'',
+        stateFlag:'',
+        infoPublishStartTime:'',
+        infoPublishEndTime:'',
+      },
+      rules: {
+        subscriptionRulesName: [
+          { required: true, message: '请输入规则名称', trigger: 'blur' }
+        ],
+        areaCity: [
+          { required: true, message: '请选择项目所属城市', trigger: 'change' }
+        ],
+        bidingKeyword: [
+          { required: true, message: '请选择标讯关键词', trigger: 'blur' }
+        ],
+        unitNameMatch: [
+          { required: true, message: '请选择企业名称', trigger: 'change' }
+        ],
+        areaProvince: [
+          { required: true, message: '请选择项目所属省份', trigger: 'change' }
+        ],
+        subscriptionPusher: [
+          { required: true, message: '请选择标讯推送人', trigger: 'change' }
+        ],
       }
     }
   },
-  methods: {
-    onSubmit() {
-      console.log('submit!');
+  created() {
+    //如果路由参数存在
+    if (this.$route.query.id) {
+      this.areaObj = this.$route.query.id
+      this.getDetail(this.areaObj)
     }
-  }
+    this.getRuleCity()
+    this.getRuleProvince()
+    this.getUser()
+  },
+  methods: {
+    getUser(){
+      getUserList().then(res =>{
+        this.subscriptionPusher=res.rows
+        console.log('this.user',this.subscriptionPusher)
+      })
+    },
+    getRuleCity(){
+      cityQuery().then(res =>{
+        if (res.code == 200) {
+          this.areaCityOptions=res.data
+        }else {
+          alert("获取失败")
+        }
+      })
+    },
+    getRuleProvince(){
+      provinceQuery().then(res =>{
+        if (res.code == 200) {
+          this.areaProvinceOptions=res.data
+        }else {
+          alert("获取失败")
+        }
+      })
+    },
+    getDetail(id){
+      queryById(id).then(res =>{
+        this.form=res.data
+        this.infoPublishTime=[res.data.infoPublishStartTime,res.data.infoPublishEndTime]
+      })
+    },
+    cancel(){
+      this.form = {
+        id:'',
+        xmNumber:'',
+        keywordMatch:'',
+        subscriptionRulesName:'',
+        areaCity:'',
+        areaProvince:'',
+        infoTypeSegment:[],
+        bidingEndTime:'',
+        tenderEndTime:'',
+        zhaoBiaoUnitType:[],
+        biddingType:[],
+        bidingKeyword:'',
+        excludeWord:'',
+        unitNameMatch:'',
+        zhaoBiaoUnit:'',
+        subscriptionPusher:[],
+        ruleDescription:'',
+        stateFlag:'',
+        infoPublishStartTime:'',
+        infoPublishEndTime:'',
+      }
+      this.$router.go(-1)
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateById(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.$router.go(-1)
+            });
+          } else {
+            console.log(this.infoPublishTime)
+            if (this.infoPublishTime != "" && this.infoPublishTime != null) {
+              this.form.infoPublishStartTime = this.infoPublishTime[0]
+              this.form.infoPublishEndTime = this.infoPublishTime[1]
+            }
+            insert(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+            });
+
+          }
+        }
+      });
+    },
+  },
 }
 </script>
 <style>

+ 25 - 14
src/views/business/bid/subscriptionRules/index.vue

@@ -21,6 +21,12 @@
       <el-col :span="2">
         <el-button type="info" size="small" icon="el-icon-refresh" @click="">重置</el-button>
       </el-col>
+      <div style="text-align: end;padding-right: 50px" >
+        <el-button type="primary" size="small" icon="el-icon-plus" @click="handleInsert">新增</el-button>
+      </div>
+      <el-col :span="2">
+
+      </el-col>
     </el-row>
   </el-form>
     <el-table
@@ -47,23 +53,24 @@
       </el-table-column>
       <el-table-column prop="zhaoBiaoUnitType" label="招标公司类型" width="100" align="center"></el-table-column>
       <el-table-column prop="bidingKeyword" label="标讯关键词" width="100" align="center"></el-table-column>
-      <el-table-column prop="exclude" label="排除词" width="80" align="center"></el-table-column>
+      <el-table-column prop="excludeWord" label="排除词" width="80" align="center"></el-table-column>
       <el-table-column prop="unitNameMatch" label="企业名称匹配" width="100" align="center"></el-table-column>
+      <el-table-column prop="zhaoBiaoUnit" label="招标单位" width="100" align="center"></el-table-column>
       <el-table-column prop="createByName" label="创建人" width="100" align="center"></el-table-column>
       <el-table-column prop="createTime" label="创建时间" width="150" align="center"></el-table-column>
       <el-table-column prop="updateByName" label="最后修改人" width="100" align="center"></el-table-column>
       <el-table-column prop="updateTime" label="最后修改时间" width="150" align="center"></el-table-column>
       <el-table-column prop="state" label="状态" width="80">
         <template slot-scope="scope">
-          {{getChangeType3(scope.row.state)}}<!--调用getChangeType方法-->
+          {{getChangeType3(scope.row.stateFlag)}}<!--调用getChangeType方法-->
         </template>
       </el-table-column>
       <el-table-column  label="操作" width="100" align="center">
 
         <template slot-scope="scope">
-          <el-button type="text" @click="handleEdit(scope.row)"> 编辑</el-button>
+          <el-button type="text" @click="handleEdit(scope.row.id)">编辑</el-button>
           <el-button type="text"  @click="handleOpen(scope.row)">
-          {{scope.row.state == '0' ?"停用":"启用"}}
+          {{scope.row.stateFlag == '0' ?"停用":"启用"}}
           </el-button>
         </template>
 
@@ -81,7 +88,7 @@
   </div>
 </template>
 <script>
-import {getSubscriptionRules, isStop} from "@/api/business/bid/subscriptionRules";
+import {getSubscriptionRules, isStop, pageQuery, updateState} from "@/api/business/bid/subscriptionRules";
 import text from "quill/blots/text";
 
 export default {
@@ -92,7 +99,10 @@ export default {
   },
   methods: {
     handleEdit(pramsData){
-      let resolve = this.$router.push({path:'/business/bid/subscriptionRulesDetail',query:pramsData});
+      this.$router.push({path:'/business/bid/subscriptionRulesDetail',query:{id:pramsData}});
+    },
+    handleInsert(){
+      this.$router.push({path:'/business/bid/subscriptionRulesDetail'});
     },
     async handleOpen(row){
 
@@ -104,26 +114,26 @@ export default {
       }else {
         row.state='1';
       }
-      await isStop(row);
+      await updateState(row);
       this.btnQuery();
     },
     getChangeType3(e) {
       for (var i = 0; i < this.stateOptions.length; i++) {
-        if (this.stateOptions[i].value === e) { //dictValue,dictLabel保持和上面定义一致
+        if (this.stateOptions[i].value === e) {
           return this.stateOptions[i].label;
         }
       }
     },
     getChangeType2(e) {
       for (var i = 0; i < this.bidType.length; i++) {
-        if (this.bidType[i].value === e) { //dictValue,dictLabel保持和上面定义一致
+        if (this.bidType[i].value === e) {
           return this.bidType[i].label;
         }
       }
     },
     getChangeType(e) {
       for (var i = 0; i < this.noticeType.length; i++) {
-        if (this.noticeType[i].value === e) { //dictValue,dictLabel保持和上面定义一致
+        if (this.noticeType[i].value === e) {
           return this.noticeType[i].label;
         }
       }
@@ -137,10 +147,10 @@ export default {
       this.btnQuery();
     },
     btnQuery(){
-      getSubscriptionRules(this.form).then(res =>{
+      pageQuery(this.form).then(res =>{
         if(res.code=200){
-          this.dataList.dataTable=res.data.rows
-          this.dataList.total=res.data.total
+          this.dataList.dataTable=res.rows
+          this.dataList.total=res.total
         }else {
           alert("获取失败")
         }
@@ -242,12 +252,13 @@ export default {
           label: '验收公告'
         },
       ],
-      form:{
+      queryParams:{
         input:'',
         selectFull:'',
         pageNum: 1,
         pageSize: 10,
       },
+      form:{},
     }
   }
 }