bidingInfoDetail.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <template>
  2. <div class="bidingInfoDetailMenu">
  3. <h1>招投标公告详情</h1>
  4. <el-descriptions class="margin-top" title="公告基本信息" :column="2" border>
  5. <el-descriptions-item label="标题" :span="2">{{this.dataList.infoTitle}}</el-descriptions-item>
  6. <el-descriptions-item label="一级公告类型" >
  7. {{getChangeType(this.dataList.infoType)}}<!--调用getChangeType方法-->
  8. </el-descriptions-item>
  9. <el-descriptions-item label="二级公告类型" >
  10. {{getChangeType1(this.dataList.infoTypeSegment)}}
  11. </el-descriptions-item>
  12. <el-descriptions-item label="项目所属地区" >
  13. {{this.dataList.areaProvince+this.dataList.areaCity+this.dataList.areaCountry}}
  14. </el-descriptions-item>
  15. <el-descriptions-item label="项目名称" >{{this.dataList.infoTitle}}</el-descriptions-item>
  16. <el-descriptions-item label="招标方式" >{{getChangeType2(this.dataList.biddingType)}}</el-descriptions-item>
  17. <el-descriptions-item label="招标预算" >{{this.dataList.bidWinnerAmount}}</el-descriptions-item>
  18. <el-descriptions-item label="发布时间" >{{this.dataList.infoPublishTime}}</el-descriptions-item>
  19. <el-descriptions-item label="投标开始至截止日期" >{{this.dataList.tenderBeginTime}}至{{this.dataList.tenderEndTime}}</el-descriptions-item>
  20. <el-descriptions-item label="标书开始至截止日期" >{{this.dataList.bidingAcquireTime}}至{{this.dataList.bidingEndTime}}</el-descriptions-item>
  21. <el-descriptions-item label="招标公司类型" ></el-descriptions-item>
  22. <!-- <el-descriptions-item label="招标状态" >{{YMDHMS_daxiao(this.areaObj.tenderEndTime) > 0 ? "未截止":"已截止"}}</el-descriptions-item>-->
  23. <el-descriptions-item label="招标状态" ></el-descriptions-item>
  24. </el-descriptions>
  25. <el-descriptions class="margin-top" title="公告主题信息" :column="2" border >
  26. <el-descriptions-item label="招标单位" >{{(this.dataList.zhaoBiaoUnitTempDtos!=null&&this.dataList.zhaoBiaoUnitTempDtos.length == 0) ? null:this.dataList.zhaoBiaoUnitTempDtos[0].zhaoBiaoUnit}}</el-descriptions-item>
  27. <el-descriptions-item label="招标单位联系人">{{(this.dataList.zhaoBiaoUnitTempDtos!=null&&this.dataList.zhaoBiaoUnitTempDtos.length == 0) ? null : this.dataList.zhaoBiaoUnitTempDtos[0].zhaoRelationName}}</el-descriptions-item>
  28. <el-descriptions-item label="招标单位联系电话">{{(this.dataList.zhaoBiaoUnitTempDtos!=null&&this.dataList.zhaoBiaoUnitTempDtos.length == 0) ? null : this.dataList.zhaoBiaoUnitTempDtos[0].zhaoRelationWay}}</el-descriptions-item>
  29. <el-descriptions-item label="代理单位" >{{(this.dataList.agentUnitTempDtos!=null&&this.dataList.agentUnitTempDtos.length == 0) ? null: this.dataList.agentUnitTempDtos[0].agentUnit}}</el-descriptions-item>
  30. <el-descriptions-item label="代理单位联系人" >{{(this.dataList.agentUnitTempDtos!=null&&this.dataList.agentUnitTempDtos.length == 0) ? null: this.dataList.agentUnitTempDtos[0].agentRelationName}}</el-descriptions-item>
  31. <el-descriptions-item label="代理单位联系方式" >{{(this.dataList.agentUnitTempDtos!=null&&this.dataList.agentUnitTempDtos.length == 0) ? null: this.dataList.agentUnitTempDtos[0].agentRelationWay}}</el-descriptions-item>
  32. <el-descriptions-item label="联系地址" ></el-descriptions-item>
  33. <el-descriptions-item label="中标单位" >{{(this.dataList.zhongBiaoUnitTempDtos!=null&&this.dataList.zhongBiaoUnitTempDtos.length == 0) ? null: this.dataList.zhongBiaoUnitTempDtos[0].zhongBiaoUnit}}</el-descriptions-item>
  34. <el-descriptions-item label="中标单位联系人" >{{(this.dataList.zhongBiaoUnitTempDtos!=null&&this.dataList.zhongBiaoUnitTempDtos.length == 0) ? null: this.dataList.zhongBiaoUnitTempDtos[0].zhongRelationName}}</el-descriptions-item>
  35. <el-descriptions-item label="中标单位联系人电话" >{{(this.dataList.zhongBiaoUnitTempDtos!=null&&this.dataList.zhongBiaoUnitTempDtos.length == 0) ? null: this.dataList.zhongBiaoUnitTempDtos[0].zhongRelationWay}}</el-descriptions-item>
  36. <el-descriptions-item label="中标合同开始时间" >
  37. <el-date-picker
  38. :disabled="contractInputVisible"
  39. v-model="form.contractStartTime"
  40. type="date"
  41. value-format="yyyy-MM-dd"
  42. placeholder="请输入合同开始时间">
  43. </el-date-picker>
  44. </el-descriptions-item>
  45. <el-descriptions-item label="中标合同结束时间" >
  46. <el-date-picker
  47. :disabled="contractInputVisible"
  48. v-model="form.contractEndTime"
  49. type="date"
  50. value-format="yyyy-MM-dd"
  51. placeholder="请输入合同结束时间">
  52. </el-date-picker>
  53. </el-descriptions-item>
  54. </el-descriptions>
  55. <el-button type="primary" @click="contractEditHandle">编辑中标合同时间</el-button>
  56. <el-button type="primary" @click="contractSaveHandle">保存中标合同时间</el-button>
  57. <el-descriptions class="margin-top" title="产品信息" :column="5" border>
  58. <el-descriptions-item label="产品" :span="5">
  59. <el-table
  60. :data="this.dataList.targetList"
  61. style="width: 100%" :header-cell-style="{'text-align':'center'}">
  62. <el-table-column
  63. prop="packetId"
  64. label="包号"
  65. width="180">
  66. </el-table-column>
  67. <el-table-column
  68. prop="packetName"
  69. label="包名"
  70. width="180">
  71. </el-table-column>
  72. <el-table-column
  73. prop="name"
  74. label="标的物名称"
  75. width="180">
  76. </el-table-column>
  77. <el-table-column
  78. prop="brand"
  79. label="品牌"
  80. width="180">
  81. </el-table-column>
  82. <el-table-column
  83. prop="model"
  84. label="型号"
  85. width="180">
  86. </el-table-column>
  87. <el-table-column
  88. prop="number"
  89. label="数量"
  90. width="180">
  91. </el-table-column>
  92. <el-table-column
  93. prop="price"
  94. label="单价"
  95. width="180">
  96. </el-table-column>
  97. <el-table-column
  98. prop="totalPrice"
  99. label="总价"
  100. width="180">
  101. </el-table-column>
  102. </el-table>
  103. </el-descriptions-item>
  104. <el-descriptions-item label="附件">
  105. <div v-for="(item,index) in this.dataList.infoNewFile">
  106. <a :href="item.infoFileUrl" target="_blank" class="buttonText" style="color: #00afff">
  107. {{ item.infoFileName}}</a>
  108. </div>
  109. </el-descriptions-item>
  110. </el-descriptions>
  111. <el-descriptions class="margin-top" title="公告详情信息" border>
  112. <el-descriptions-item label="公告原文" >
  113. <el-button type="info" @click="openInfoDetail">原文</el-button>
  114. </el-descriptions-item>
  115. </el-descriptions>
  116. <el-row type="flex" justify="end">
  117. <el-col :span="2">
  118. <el-button type="primary" @click="returnPage">返回</el-button>
  119. </el-col>
  120. </el-row>
  121. <el-dialog
  122. :visible.sync="dialogVisible"
  123. v-if="dialogVisible"
  124. width="100%"
  125. :before-close="handleClose"
  126. :modal="false"
  127. fullscreen
  128. >
  129. <Detail :detailId="this.detailId" @change="costPlannedAmountChange($event)"></Detail>
  130. </el-dialog>
  131. </div>
  132. </template>
  133. <script>
  134. import {QueryById, updateContractTime} from "@/api/business/bid/biding";
  135. export default {
  136. name: "bidingInfoDetailMenu",
  137. components:{
  138. Detail : () => import("@/views/business/bid/detail/detail.vue"),
  139. },
  140. props:{
  141. lastData:{
  142. type: [String,Number]
  143. },
  144. },
  145. created() {
  146. this.getDetail(this.lastData)
  147. },
  148. data() {
  149. return {
  150. detailId:'',
  151. returnPageQueryParam:'',
  152. contractStartTime:'',
  153. contractEndTime:'',
  154. contractInputVisible:true,
  155. dialogVisible:false,
  156. dataList:{},
  157. areaObj:'',
  158. form:{
  159. id:'',
  160. contractStartTime:'',
  161. contractEndTime:'',
  162. },
  163. bidType: [
  164. {
  165. value: '0',
  166. label: '公开招标'
  167. },
  168. {
  169. value: '4',
  170. label: '询比价'
  171. },
  172. {
  173. value: '2',
  174. label: '竞价'
  175. },
  176. {
  177. value: '1',
  178. label: '邀请招标'
  179. },
  180. {
  181. value: '3',
  182. label: '定点采购'
  183. },
  184. {
  185. value: '5',
  186. label: '公开寻源'
  187. },
  188. {
  189. value: '6',
  190. label: '电子反拍'
  191. }
  192. ],
  193. noticeTwoType: [
  194. {
  195. value: '1',
  196. label: '采购意向'
  197. },
  198. {
  199. value: '2',
  200. label: '招投标'
  201. },
  202. {
  203. value: '3',
  204. label: '招标'
  205. },
  206. {
  207. value: '5',
  208. label: '变更公告'
  209. },
  210. {
  211. value: '10',
  212. label: '中标候选人'
  213. },
  214. {
  215. value: '11',
  216. label: '中标结果'
  217. },
  218. {
  219. value: '12',
  220. label: '合同'
  221. },
  222. {
  223. value: '13',
  224. label: '验收公告'
  225. },
  226. ],
  227. noticeOneType:[
  228. {
  229. value: '0',
  230. label: '公告'
  231. },
  232. {
  233. value: '1',
  234. label: '预告'
  235. },
  236. {
  237. value: '2',
  238. label: '变更'
  239. },
  240. {
  241. value: '3',
  242. label: '结果'
  243. },
  244. {
  245. value: '5',
  246. label: '其他'
  247. }
  248. ],
  249. };
  250. },
  251. methods:{
  252. async costPlannedAmountChange(value){
  253. this.dialogVisible=value
  254. },
  255. handleClose(done) {
  256. this.$confirm('确认关闭?')
  257. .then(_ => {
  258. done();
  259. })
  260. .catch(_ => {});
  261. },
  262. contractEditHandle(){
  263. this.contractInputVisible=false
  264. },
  265. contractSaveHandle(){
  266. updateContractTime(this.form).then(res =>{
  267. if(200==res.code){
  268. this.contractInputVisible=true
  269. this.$modal.msgSuccess("修改成功");
  270. }else {
  271. this.$modal.alertError("修改失败");
  272. }
  273. })
  274. },
  275. goToBasic(){
  276. this.$router.push({path:'/business/bid/detail',query:{id:this.dataList.infoId}});
  277. },
  278. openInfoDetail(){
  279. this.detailId=this.dataList.infoId
  280. this.dialogVisible=true
  281. },
  282. getDetail(val){
  283. QueryById(val).then(res =>{
  284. if(res.code == 200){
  285. this.dataList=res.data
  286. this.form.contractStartTime=this.dataList.zhongBiaoUnitTempDtos[0].contractStartTime
  287. this.form.contractEndTime=this.dataList.zhongBiaoUnitTempDtos[0].contractEndTime
  288. this.form.id= this.dataList.zhongBiaoUnitTempDtos[0].id
  289. }
  290. })
  291. },
  292. // YMDHMS_daxiao(str1) {
  293. // str1 = new Date(str1).getTime();
  294. // // 小于0则str1时间小,大于0则str1时间大
  295. // return str1 - new Date().getTime();
  296. // },
  297. returnPage(){
  298. this.$emit('change', false);
  299. },
  300. getChangeType(e) {
  301. for (var i = 0; i < this.noticeOneType.length; i++) {
  302. if (this.noticeOneType[i].value === e) {
  303. return this.noticeOneType[i].label;
  304. }
  305. }
  306. },
  307. getChangeType1(e) {
  308. for (var i = 0; i < this.noticeTwoType.length; i++) {
  309. if (this.noticeTwoType[i].value === e) {
  310. return this.noticeTwoType[i].label;
  311. }
  312. }
  313. },
  314. getChangeType2(e) {
  315. for (var i = 0; i < this.bidType.length; i++) {
  316. if (this.bidType[i].value === e) {
  317. return this.bidType[i].label;
  318. }
  319. }
  320. },
  321. }
  322. }
  323. </script>
  324. <style lang="scss" scoped>
  325. .bidingInfoDetailMenu{
  326. margin: 10px;
  327. }
  328. </style>