detail.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428
  1. <template>
  2. <div>
  3. <el-card class="box-card" style="background-color: #f2f2f2">
  4. <el-form ref="form" :rules="rules" :model="form" label-width="130px">
  5. <el-row :gutter="24">
  6. <el-col :span="8">
  7. <el-form-item label="编号" prop="xmNumber">
  8. <el-input v-model="form.xmNumber" :disabled="true" clearable>{{this.areaObj.xmNumber}}</el-input>
  9. </el-form-item>
  10. </el-col>
  11. <el-col :span="8">
  12. <el-form-item label="规则名称" prop="subscriptionRulesName">
  13. <el-input v-model="form.subscriptionRulesName">{{this.areaObj.subscriptionRulesName}}</el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="8">
  17. <el-form-item label="招标单位">
  18. <el-input v-model="form.zhaoBiaoUnit">{{this.areaObj.zhaoBiaoUnit}}</el-input>
  19. </el-form-item>
  20. </el-col>
  21. </el-row>
  22. <el-row :gutter="24">
  23. <el-col :span="8">
  24. <el-form-item label="发布时间">
  25. <el-date-picker
  26. v-model="infoPublishTime"
  27. type="datetimerange"
  28. value-format="yyyy-MM-dd HH:mm:ss"
  29. range-separator="至"
  30. start-placeholder="开始月份"
  31. end-placeholder="结束月份"
  32. >
  33. {{this.areaObj.infoPublishTime}}</el-date-picker>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="8">
  37. <el-form-item label="项目所属省份" prop="areaProvince">
  38. <el-select v-model="form.areaProvince" placeholder="请选择" style="width: 100%;">
  39. <el-option
  40. v-for="item in areaProvinceOptions"
  41. :key="item.value"
  42. :label="item.label"
  43. :value="item.value">
  44. </el-option>{{this.areaObj.areaProvince}}
  45. </el-select>
  46. </el-form-item>
  47. </el-col>
  48. <el-col :span="8">
  49. <el-form-item label="项目所属城市" prop="areaCity">
  50. <el-select v-model="form.areaCity" placeholder="请选择" style="width: 100%;">
  51. <el-option
  52. v-for="item in areaCityOptions"
  53. :key="item.value"
  54. :label="item.label"
  55. :value="item.value">
  56. </el-option>{{this.areaObj.areaCity}}
  57. </el-select>
  58. </el-form-item>
  59. </el-col>
  60. </el-row>
  61. <el-row :gutter="24">
  62. <el-col :span="8">
  63. <el-form-item label="公告类型">
  64. <el-select v-model="form.infoTypeSegment" multiple placeholder="请选择活动区域" style="width: 100%">
  65. <el-option
  66. v-for="item in noticeType"
  67. :key="item.value"
  68. :label="item.label"
  69. :value="item.value">
  70. </el-option>
  71. </el-select>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="获取标书截止日期">
  76. <el-date-picker
  77. type="datetime"
  78. placeholder="选择日期"
  79. value-format="yyyy-MM-dd HH:mm:ss"
  80. v-model="form.bidingEndTime"
  81. style="width: 100%;" >{{this.areaObj.bidingEndTime}}</el-date-picker>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-form-item label="投标截止日期">
  86. <el-date-picker
  87. type="datetime"
  88. placeholder="选择日期"
  89. value-format="yyyy-MM-dd HH:mm:ss"
  90. v-model="form.tenderEndTime"
  91. style="width: 100%;" >{{this.areaObj.tenderEndTime}}</el-date-picker>
  92. </el-form-item>
  93. </el-col>
  94. </el-row>
  95. <el-row :gutter="24">
  96. <el-col :span="8">
  97. <el-form-item label="招标公司类型">
  98. <el-select v-model="form.zhaoBiaoUnitType" multiple placeholder="请选择活动区域" style="width: 100%;">
  99. <el-option
  100. v-for="item in zhaoBiaoUnitType"
  101. :key="item.value"
  102. :label="item.label"
  103. :value="item.value">
  104. </el-option>
  105. </el-select>
  106. </el-form-item>
  107. </el-col>
  108. <el-col :span="8">
  109. <el-form-item label="招标方式" >
  110. <el-select v-model="form.biddingType" multiple placeholder="请选择活动区域" style="width: 100%;">
  111. <el-option
  112. v-for="item in bidType"
  113. :key="item.value"
  114. :label="item.label"
  115. :value="item.value">
  116. </el-option>
  117. </el-select>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="8">
  121. <el-form-item label="标讯关键词" prop="bidingKeyword">
  122. <el-input v-model="form.bidingKeyword">{{this.areaObj.bidingKeyword}}</el-input>
  123. </el-form-item>
  124. </el-col>
  125. </el-row>
  126. <el-row :gutter="24">
  127. <el-col :span="8">
  128. <el-form-item label="排除词">
  129. <el-input v-model="form.excludeWord">{{this.areaObj.excludeWord}}</el-input>
  130. </el-form-item>
  131. </el-col>
  132. <el-col :span="7" >
  133. <el-form-item label="企业名称匹配" prop="unitNameMatch">
  134. <el-input v-model="form.unitNameMatch">{{this.areaObj.unitNameMatch}}</el-input>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="1">
  138. <el-button type="primary" @click="returnPage">新增</el-button>
  139. </el-col>
  140. <el-col :span="8">
  141. <el-form-item label="标讯推送人" prop="subscriptionPusher">
  142. <el-select v-model="form.subscriptionPusher" multiple placeholder="请选择" style="width: 100%;">
  143. <el-option
  144. v-for="item in subscriptionPusher"
  145. :key="item.userName"
  146. :label="item.nickName"
  147. :value="item.userName">
  148. </el-option>
  149. </el-select>
  150. </el-form-item>
  151. </el-col>
  152. </el-row>
  153. <el-row>
  154. <el-form-item label="规则描述">
  155. <el-input
  156. type="textarea"
  157. :rows="2"
  158. placeholder="请输入内容"
  159. v-model="form.ruleDescription">
  160. </el-input>
  161. </el-form-item>
  162. </el-row>
  163. </el-form>
  164. <el-row :gutter="24" type="flex" justify="end">
  165. <el-col :span="4">
  166. <el-button type="info" @click="cancel()" >取消</el-button>
  167. </el-col>
  168. <el-col :span="4">
  169. <el-button type="primary" @click="submitForm" >保存</el-button>
  170. </el-col>
  171. </el-row>
  172. </el-card>
  173. </div>
  174. </template>
  175. <script>
  176. import {cityQuery, insert, provinceQuery, queryById, updateById,getUserList} from "@/api/business/bid/subscriptionRules";
  177. export default {
  178. data() {
  179. return {
  180. userList:[],
  181. infoPublishTime:[],
  182. areaProvinceOptions:[],
  183. areaCityOptions:[],
  184. zhaoBiaoUnitType:[
  185. {
  186. value: '1',
  187. label: '医院'
  188. },
  189. {
  190. value: '2',
  191. label: '卫生所'
  192. },
  193. ],
  194. subscriptionPusher:[
  195. {
  196. value: '1',
  197. label: '张三'
  198. },
  199. {
  200. value: '2',
  201. label: '李四'
  202. },
  203. ],
  204. noticeType: [
  205. {
  206. value: '1',
  207. label: '采购意向'
  208. },
  209. {
  210. value: '2',
  211. label: '招投标'
  212. },
  213. {
  214. value: '3',
  215. label: '招标'
  216. },
  217. {
  218. value: '5',
  219. label: '变更公告'
  220. },
  221. {
  222. value: '10',
  223. label: '中标候选人'
  224. },
  225. {
  226. value: '11',
  227. label: '中标结果'
  228. },
  229. {
  230. value: '12',
  231. label: '合同'
  232. },
  233. {
  234. value: '13',
  235. label: '验收公告'
  236. },
  237. ],
  238. bidType: [
  239. {
  240. value: '0',
  241. label: '公开招标'
  242. },
  243. {
  244. value: '4',
  245. label: '询比价'
  246. },
  247. {
  248. value: '2',
  249. label: '竞价'
  250. },
  251. {
  252. value: '1',
  253. label: '邀请招标'
  254. },
  255. {
  256. value: '3',
  257. label: '定点采购'
  258. },
  259. {
  260. value: '5',
  261. label: '公开寻源'
  262. },
  263. {
  264. value: '6',
  265. label: '电子反拍'
  266. }
  267. ],
  268. infoTypeSegmentOptions:[{
  269. value: '选项1',
  270. label: '黄金糕'
  271. }, {
  272. value: '选项2',
  273. label: '双皮奶'
  274. }, {
  275. value: '选项3',
  276. label: '蚵仔煎'
  277. }, {
  278. value: '选项4',
  279. label: '龙须面'
  280. }, {
  281. value: '选项5',
  282. label: '北京烤鸭'
  283. }],
  284. areaObj:'',
  285. form: {
  286. id:undefined,
  287. xmNumber:'',
  288. keywordMatch:'',
  289. subscriptionRulesName:'',
  290. areaCity:'',
  291. areaProvince:'',
  292. infoTypeSegment:[],
  293. bidingEndTime:'',
  294. tenderEndTime:'',
  295. zhaoBiaoUnitType:[],
  296. biddingType:[],
  297. bidingKeyword:'',
  298. excludeWord:'',
  299. unitNameMatch:'',
  300. zhaoBiaoUnit:'',
  301. subscriptionPusher:[],
  302. ruleDescription:'',
  303. stateFlag:'',
  304. infoPublishStartTime:'',
  305. infoPublishEndTime:'',
  306. },
  307. rules: {
  308. subscriptionRulesName: [
  309. { required: true, message: '请输入规则名称', trigger: 'blur' }
  310. ],
  311. areaCity: [
  312. { required: true, message: '请选择项目所属城市', trigger: 'change' }
  313. ],
  314. bidingKeyword: [
  315. { required: true, message: '请选择标讯关键词', trigger: 'blur' }
  316. ],
  317. unitNameMatch: [
  318. { required: true, message: '请选择企业名称', trigger: 'change' }
  319. ],
  320. areaProvince: [
  321. { required: true, message: '请选择项目所属省份', trigger: 'change' }
  322. ],
  323. subscriptionPusher: [
  324. { required: true, message: '请选择标讯推送人', trigger: 'change' }
  325. ],
  326. }
  327. }
  328. },
  329. created() {
  330. //如果路由参数存在
  331. if (this.$route.query.id) {
  332. this.areaObj = this.$route.query.id
  333. this.getDetail(this.areaObj)
  334. }
  335. this.getRuleCity()
  336. this.getRuleProvince()
  337. this.getUser()
  338. },
  339. methods: {
  340. getUser(){
  341. getUserList().then(res =>{
  342. this.subscriptionPusher=res.rows
  343. console.log('this.user',this.subscriptionPusher)
  344. })
  345. },
  346. getRuleCity(){
  347. cityQuery().then(res =>{
  348. if (res.code == 200) {
  349. this.areaCityOptions=res.data
  350. }else {
  351. alert("获取失败")
  352. }
  353. })
  354. },
  355. getRuleProvince(){
  356. provinceQuery().then(res =>{
  357. if (res.code == 200) {
  358. this.areaProvinceOptions=res.data
  359. }else {
  360. alert("获取失败")
  361. }
  362. })
  363. },
  364. getDetail(id){
  365. queryById(id).then(res =>{
  366. this.form=res.data
  367. this.infoPublishTime=[res.data.infoPublishStartTime,res.data.infoPublishEndTime]
  368. })
  369. },
  370. cancel(){
  371. this.form = {
  372. id:'',
  373. xmNumber:'',
  374. keywordMatch:'',
  375. subscriptionRulesName:'',
  376. areaCity:'',
  377. areaProvince:'',
  378. infoTypeSegment:[],
  379. bidingEndTime:'',
  380. tenderEndTime:'',
  381. zhaoBiaoUnitType:[],
  382. biddingType:[],
  383. bidingKeyword:'',
  384. excludeWord:'',
  385. unitNameMatch:'',
  386. zhaoBiaoUnit:'',
  387. subscriptionPusher:[],
  388. ruleDescription:'',
  389. stateFlag:'',
  390. infoPublishStartTime:'',
  391. infoPublishEndTime:'',
  392. }
  393. this.$router.go(-1)
  394. },
  395. /** 提交按钮 */
  396. submitForm: function() {
  397. this.$refs["form"].validate(valid => {
  398. if (valid) {
  399. if (this.form.id != undefined) {
  400. updateById(this.form).then(response => {
  401. this.$modal.msgSuccess("修改成功");
  402. this.$router.go(-1)
  403. });
  404. } else {
  405. console.log(this.infoPublishTime)
  406. if (this.infoPublishTime != "" && this.infoPublishTime != null) {
  407. this.form.infoPublishStartTime = this.infoPublishTime[0]
  408. this.form.infoPublishEndTime = this.infoPublishTime[1]
  409. }
  410. insert(this.form).then(response => {
  411. this.$modal.msgSuccess("新增成功");
  412. });
  413. }
  414. }
  415. });
  416. },
  417. },
  418. }
  419. </script>
  420. <style>
  421. </style>