移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

637 line
23 KiB

  1. <template>
  2. <div class="home_wrapper">
  3. <div class="header_main">
  4. 查看合同信息
  5. <div class="return_btn" @click="onClickLeft"></div>
  6. </div>
  7. <van-form @submit="onSubmit">
  8. <div class="list_main">
  9. <div class="titBox">
  10. <img src="../../assets/images/sunVillage_info/add_icon_1.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
  11. <p class="tit">合同信息</p>
  12. </div>
  13. <van-field readonly required v-model="form.code" label="合同编码" placeholder="合同编码" input-align="right" :border="false" />
  14. <van-field readonly required v-model="form.name" label="合同名称" placeholder="合同名称" input-align="right" :border="false" />
  15. <van-field
  16. readonly
  17. clickable
  18. label="合同类型"
  19. placeholder="请选择"
  20. v-model="assetType"
  21. input-align="right"
  22. right-icon="arrow-down"
  23. label-width="auto"
  24. required
  25. :border="false"
  26. :rules="[{ required: true , message:'请选择合同类型' }]"
  27. />
  28. <van-popup v-model="showAssetType" position="bottom">
  29. <van-picker
  30. show-toolbar
  31. :columns="assetTypeOptions"
  32. @confirm="onConfirmAssetType"
  33. @cancel="showAssetType = false"
  34. />
  35. </van-popup>
  36. <van-field
  37. readonly
  38. clickable
  39. label="合同来源"
  40. placeholder="请选择"
  41. v-model="contractionSource"
  42. input-align="right"
  43. right-icon="arrow-down"
  44. label-width="auto"
  45. required
  46. :border="false"
  47. :rules="[{ required: true , message:'请选择合同来源' }]"
  48. />
  49. <van-popup v-model="showContractionSource" position="bottom">
  50. <van-picker
  51. show-toolbar
  52. :columns="contractionSourceOptions"
  53. @confirm="onConfirmContractionSource"
  54. @cancel="showContractionSource = false"
  55. />
  56. </van-popup>
  57. <van-field readonly required v-model="form.firstParty" label="合同甲方" placeholder="合同甲方" input-align="right" :border="false" />
  58. <van-field readonly v-model="form.firstPartyDirector" label="甲方代表" placeholder="甲方代表" input-align="right" :border="false" />
  59. <van-field readonly v-model="form.firstPartyPhone" label="甲方电话" placeholder="甲方电话" input-align="right" :border="false" />
  60. <van-field readonly required v-model="form.secondParty" label="合同乙方" placeholder="乙方名称" input-align="right" :border="false" />
  61. <van-field readonly v-model="form.secondPartyDirector" label="乙方代表" placeholder="乙方代表" input-align="right" :border="false" />
  62. <van-field readonly v-model="form.secondPartyPhone" label="乙方电话" placeholder="乙方电话" input-align="right" :border="false" />
  63. <van-field readonly v-model="form.secondPartyIdCard" label="乙方身份证号" placeholder="乙方身份证号" input-align="right" :border="false" />
  64. <van-field
  65. readonly
  66. clickable
  67. label="签订日期"
  68. placeholder="请选择"
  69. v-model="form.buildingTime"
  70. input-align="right"
  71. right-icon="arrow-down"
  72. label-width="auto"
  73. required
  74. :border="false"
  75. />
  76. <van-popup v-model="showBuildingTime" position="bottom">
  77. <van-datetime-picker
  78. v-model="buildingTime"
  79. type="date"
  80. title="选择年月日"
  81. @confirm="onConfirmBuildingTime"
  82. @cancel="showBuildingTime = false"
  83. />
  84. </van-popup>
  85. <van-field
  86. readonly
  87. clickable
  88. label="合同状态"
  89. placeholder="请选择"
  90. v-model="contractionStatus"
  91. input-align="right"
  92. right-icon="arrow-down"
  93. label-width="auto"
  94. required
  95. :border="false"
  96. :rules="[{ required: true , message:'请选择合同状态' }]"
  97. />
  98. <van-popup v-model="showContractionStatus" position="bottom">
  99. <van-picker
  100. show-toolbar
  101. :columns="contractionStatusOptions"
  102. @confirm="onConfirmContractionStatus"
  103. @cancel="showContractionStatus = false"
  104. />
  105. </van-popup>
  106. <van-field readonly v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false" />
  107. </div>
  108. <div class="list_main">
  109. <div class="titBox">
  110. <img src="../../assets/images/sunVillage_info/add_icon_1.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
  111. <p class="tit">合同约定</p>
  112. </div>
  113. <van-field
  114. readonly
  115. clickable
  116. label="收付款类型"
  117. placeholder="请选择"
  118. v-model="collectionPay"
  119. input-align="right"
  120. right-icon="arrow-down"
  121. label-width="auto"
  122. required
  123. :border="false"
  124. :rules="[{ required: true , message:'请选择收付款类型' }]"
  125. />
  126. <van-popup v-model="showCollectionPay" position="bottom">
  127. <van-picker
  128. show-toolbar
  129. :columns="collectionPayOptions"
  130. @confirm="onConfirmCollectionPay"
  131. @cancel="showCollectionPay = false"
  132. />
  133. </van-popup>
  134. <van-field
  135. readonly
  136. clickable
  137. label="结款方式"
  138. placeholder="请选择"
  139. v-model="settleType"
  140. input-align="right"
  141. right-icon="arrow-down"
  142. label-width="auto"
  143. required
  144. :border="false"
  145. :rules="[{ required: true , message:'请选择结款方式' }]"
  146. />
  147. <van-popup v-model="showSettleType" position="bottom">
  148. <van-picker
  149. show-toolbar
  150. :columns="settleTypeOptions"
  151. @confirm="onConfirmSettleType"
  152. @cancel="showSettleType = false"
  153. />
  154. </van-popup>
  155. <van-field
  156. readonly
  157. clickable
  158. label="支付方式"
  159. placeholder="请选择"
  160. v-model="contractPaymentType"
  161. input-align="right"
  162. right-icon="arrow-down"
  163. label-width="auto"
  164. required
  165. :border="false"
  166. :rules="[{ required: true , message:'请选择支付方式' }]"
  167. />
  168. <van-popup v-model="showContractPaymentType" position="bottom">
  169. <van-picker
  170. show-toolbar
  171. :columns="contractPaymentTypeOptions"
  172. @confirm="onConfirmContractPaymentType"
  173. @cancel="showContractPaymentType = false"
  174. />
  175. </van-popup>
  176. <van-field readonly v-model="form.contractObject" label="合同标的" placeholder="合同标的" input-align="right" :border="false" />
  177. <van-field readonly v-model="form.num" label="标的数量" placeholder="标的数量" input-align="right" :border="false" />
  178. <van-field readonly v-model="form.unit" label="计量单位" placeholder="计量单位" input-align="right" :border="false" />
  179. <van-field
  180. readonly
  181. clickable
  182. label="开始日期"
  183. placeholder="请选择"
  184. v-model="form.startTime"
  185. input-align="right"
  186. right-icon="arrow-down"
  187. label-width="auto"
  188. required
  189. :border="false"
  190. :rules="[{ required: true , message:'请选择开始日期' }]"
  191. />
  192. <van-popup v-model="showStartTime" position="bottom">
  193. <van-datetime-picker
  194. v-model="startTime"
  195. type="date"
  196. title="选择年月日"
  197. @confirm="onConfirmStartTime"
  198. @cancel="showStartTime = false"
  199. />
  200. </van-popup>
  201. <van-field
  202. readonly
  203. clickable
  204. label="结束日期"
  205. placeholder="请选择"
  206. v-model="form.endTime"
  207. input-align="right"
  208. right-icon="arrow-down"
  209. label-width="auto"
  210. required
  211. :border="false"
  212. :rules="[{ required: true , message:'请选择开始日期' }]"
  213. />
  214. <van-popup v-model="showEndTime" position="bottom">
  215. <van-datetime-picker
  216. v-model="endTime"
  217. type="date"
  218. title="选择年月日"
  219. @confirm="onConfirmEndTime"
  220. @cancel="showEndTime = false"
  221. />
  222. </van-popup>
  223. <van-field readonly v-model="form.contractYears" label="承包年限(年)" placeholder="承包年限(年)" input-align="right" :border="false" />
  224. <van-field readonly required v-model="form.totalAmount" label="承包价款(元)" placeholder="承包价款(元)" input-align="right" :border="false" />
  225. <van-field readonly required v-model="form.price" label="折合年均(元)" placeholder="折合年均(元)" input-align="right" :border="false" />
  226. <van-field readonly required v-model="form.receivedAmount" label="已结款(元)" placeholder="已结款(元)" input-align="right" :border="false" />
  227. <van-field readonly v-model="form.settledAmount" label="下次结款(元)" placeholder="下次结款(元)" input-align="right" :border="false" />
  228. </div>
  229. <div class="list_main">
  230. <div class="titBox">
  231. <img src="../../assets/images/sunVillage_info/add_icon_2.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
  232. <p class="tit">村委情况</p>
  233. </div>
  234. <van-field readonly v-model="form.villageHead" label="村负责人" placeholder="村负责人" input-align="right" :border="false" />
  235. <van-field readonly v-model="form.contractCustodian" label="合同保管人" placeholder="合同保管人" input-align="right" />
  236. <van-field readonly v-model="form.villageRepsOpinion" label="村民代表意见" placeholder="村民代表意见" input-align="right" :border="false" />
  237. <van-field
  238. readonly
  239. clickable
  240. label="会议时间"
  241. placeholder="请选择"
  242. v-model="form.meetingTime"
  243. input-align="right"
  244. right-icon="arrow-down"
  245. label-width="auto"
  246. :border="false"
  247. />
  248. <van-popup v-model="showMeetingTime" position="bottom">
  249. <van-datetime-picker
  250. v-model="meetingTime"
  251. type="date"
  252. title="选择年月日"
  253. @confirm="onConfirmMeetingTime"
  254. @cancel="showMeetingTime = false"
  255. />
  256. </van-popup>
  257. </div>
  258. <div class="list_main">
  259. <div class="titBox">
  260. <img src="../../assets/images/sunVillage_info/add_icon_2.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
  261. <p class="tit">招标信息</p>
  262. </div>
  263. <!-- <van-field required v-model="form.biddingWay" label="招标方式" placeholder="招标方式" input-align="right" :border="false" />-->
  264. <van-field readonly v-model="form.itemId" label="项目编号" placeholder="项目编号" input-align="right" />
  265. <van-field readonly v-model="form.itemName" label="项目名称" placeholder="项目名称" input-align="right" :border="false" />
  266. <van-field readonly v-model="form.handleName" label="经办人" placeholder="经办人" input-align="right" :border="false" />
  267. <van-field readonly v-model="form.budget" label="预算金额(元)" placeholder="预算金额(元)" input-align="right" :border="false" />
  268. <van-field
  269. readonly
  270. clickable
  271. label="招标日期"
  272. placeholder="请选择"
  273. v-model="form.biddingDate"
  274. input-align="right"
  275. right-icon="arrow-down"
  276. label-width="auto"
  277. :border="false"
  278. />
  279. <van-popup v-model="showBiddingDate" position="bottom">
  280. <van-datetime-picker
  281. v-model="biddingDate"
  282. type="date"
  283. title="选择年月日"
  284. @confirm="onConfirmBiddingDate"
  285. @cancel="showBiddingDate = false"
  286. />
  287. </van-popup>
  288. <van-field
  289. readonly
  290. clickable
  291. label="招标类型"
  292. placeholder="请选择"
  293. v-model="biddingType"
  294. input-align="right"
  295. right-icon="arrow-down"
  296. label-width="auto"
  297. :border="false"
  298. />
  299. <van-popup v-model="showBiddingType" position="bottom">
  300. <van-picker
  301. show-toolbar
  302. :columns="biddingTypeOptions"
  303. @confirm="onConfirmBiddingType"
  304. @cancel="showBiddingType = false"
  305. />
  306. </van-popup>
  307. <van-field readonly v-model="form.winBiddingCompany" label="中标单位" placeholder="中标单位" input-align="right" :border="false" />
  308. <van-field readonly v-model="form.winBiddingPrice" label="中标金额(元)" placeholder="中标金额(元)" input-align="right" :border="false" />
  309. <van-field readonly v-model="form.reviewer" label="审核人" placeholder="审核人" input-align="right" :border="false" />
  310. <van-field
  311. readonly
  312. clickable
  313. label="审核时间"
  314. placeholder="请选择"
  315. v-model="form.reviewTime"
  316. input-align="right"
  317. right-icon="arrow-down"
  318. label-width="auto"
  319. :border="false"
  320. />
  321. <van-popup v-model="showReviewTime" position="bottom">
  322. <van-datetime-picker
  323. v-model="reviewTime"
  324. type="date"
  325. title="选择年月日"
  326. @confirm="onConfirmReviewTime"
  327. @cancel="showReviewTime = false"
  328. />
  329. </van-popup>
  330. </div>
  331. <!-- <div style="margin: 16px;">-->
  332. <!-- <van-button round block type="primary" native-type="submit">-->
  333. <!-- 提交-->
  334. <!-- </van-button>-->
  335. <!-- </div>-->
  336. </van-form>
  337. </div>
  338. </template>
  339. <script>
  340. import { getInfo } from "@/api/sunVillage_info/fixedAssets";
  341. export default {
  342. name: "certificateList",
  343. data() {
  344. return {
  345. applicationList:[],
  346. applicationListSecond:[],
  347. assetStatusOptions:[],
  348. auditStatus:[],
  349. loading: false,
  350. finished: false,
  351. listLength:'0',
  352. searchInput:'',
  353. form:{
  354. assetType:'1',
  355. contractionSource:'1',
  356. contractionStatus:'1',
  357. collectionPay:'1',
  358. settleType:'1',
  359. contractPaymentType:'1',
  360. biddingType:'',
  361. startTime:this.format(new Date(),'yyyy-MM-dd'),
  362. endTime:this.format(new Date(),'yyyy-MM-dd'),
  363. meetingTime:this.format(new Date(),'yyyy-MM-dd'),
  364. biddingDate:this.format(new Date(),'yyyy-MM-dd'),
  365. reviewTime:this.format(new Date(),'yyyy-MM-dd'),
  366. buildingTime:this.format(new Date(),'yyyy-MM-dd'),
  367. },
  368. queryParams:{
  369. pageNum:1,
  370. pageSize:10,
  371. orderByColumn:'createTime',
  372. isAsc:'desc',
  373. name:'',
  374. },
  375. startTime:new Date(),
  376. endTime:new Date(),
  377. meetingTime:new Date(),
  378. biddingDate:new Date(),
  379. reviewTime:new Date(),
  380. buildingTime:new Date(),
  381. //合同类型
  382. assetType:'农村土地承包合同类',
  383. showAssetType:false,
  384. assetTypeOptions:[],
  385. //合同来源
  386. contractionSource:'线下合同',
  387. showContractionSource:false,
  388. contractionSourceOptions:[],
  389. //合同状态
  390. contractionStatus:'正常',
  391. showContractionStatus:false,
  392. contractionStatusOptions:[],
  393. //收付款类型
  394. collectionPay:'收款',
  395. showCollectionPay:false,
  396. collectionPayOptions:[],
  397. //结款方式
  398. settleType:'一次性支付',
  399. showSettleType:false,
  400. settleTypeOptions:[],
  401. //支付方式
  402. contractPaymentType:'现金',
  403. showContractPaymentType:false,
  404. contractPaymentTypeOptions:[],
  405. //支付方式
  406. biddingType:'',
  407. showBiddingType:false,
  408. biddingTypeOptions:[],
  409. showStartTime:false,
  410. showEndTime:false,
  411. showMeetingTime:false,
  412. showBiddingDate:false,
  413. showReviewTime:false,
  414. showBuildingTime:false,
  415. };
  416. },
  417. created() {
  418. this.houseGetDicts("type_of_contract").then((response) => {
  419. this.assetTypeOptions = response.data;
  420. });
  421. this.houseGetDicts("contraction_source").then((response) => {
  422. this.contractionSourceOptions = response.data;
  423. });
  424. this.houseGetDicts("contraction_status").then((response) => {
  425. this.contractionStatusOptions = response.data;
  426. });
  427. this.houseGetDicts("collection_pay").then((response) => {
  428. this.collectionPayOptions = response.data;
  429. });
  430. this.houseGetDicts("settle_type").then((response) => {
  431. this.settleTypeOptions = response.data;
  432. });
  433. this.houseGetDicts("contract_payment_type").then((response) => {
  434. this.contractPaymentTypeOptions = response.data;
  435. });
  436. this.houseGetDicts("bidding_types").then((response) => {
  437. this.biddingTypeOptions = response.data;
  438. });
  439. this.getDetail(this.$route.query.id)
  440. },
  441. methods: {
  442. getDetail(id){
  443. setTimeout(() => {
  444. getInfo(id).then(response => {
  445. this.form = response.data;
  446. this.assetType = this.selectDictLabel(this.assetTypeOptions, response.data.assetType);
  447. this.contractionSource = this.selectDictLabel(this.contractionSourceOptions, response.data.contractionSource);
  448. this.contractionStatus = this.selectDictLabel(this.contractionStatusOptions, response.data.contractionStatus);
  449. this.collectionPay = this.selectDictLabel(this.collectionPayOptions, response.data.collectionPay);
  450. this.settleType = this.selectDictLabel(this.settleTypeOptions, response.data.settleType);
  451. this.contractPaymentType = this.selectDictLabel(this.contractPaymentTypeOptions, response.data.contractPaymentType);
  452. this.biddingType = this.selectDictLabel(this.biddingTypeOptions, response.data.biddingType);
  453. });
  454. }, 1000);
  455. },
  456. onConfirmAssetType(data){
  457. this.assetType = data.text;
  458. this.form.assetType = data.value;
  459. this.showAssetType = false;
  460. },
  461. onConfirmContractionSource(data){
  462. this.contractionSource = data.text;
  463. this.form.contractionSource = data.value;
  464. this.showContractionSource = false;
  465. },
  466. onConfirmContractionStatus(data){
  467. this.contractionStatus = data.text;
  468. this.form.contractionStatus = data.value;
  469. this.showContractionStatus = false;
  470. },
  471. onConfirmCollectionPay(data){
  472. this.collectionPay = data.text;
  473. this.form.collectionPay = data.value;
  474. this.showCollectionPay = false;
  475. },
  476. onConfirmSettleType(data){
  477. this.settleType = data.text;
  478. this.form.settleType = data.value;
  479. this.showSettleType = false;
  480. },
  481. onConfirmContractPaymentType(data){
  482. this.contractPaymentType = data.text;
  483. this.form.contractPaymentType = data.value;
  484. this.showContractPaymentType = false;
  485. },
  486. onConfirmBiddingType(data){
  487. this.biddingType = data.text;
  488. this.form.biddingType = data.value;
  489. this.showBiddingType = false;
  490. },
  491. onConfirmStartTime(data){
  492. this.form.startTime = this.format(data,'yyyy-MM-dd');
  493. this.startTime = data;
  494. this.showStartTime = false;
  495. },
  496. onConfirmEndTime(data){
  497. this.form.endTime = this.format(data,'yyyy-MM-dd');
  498. this.endTime = data;
  499. this.showEndTime = false;
  500. },
  501. onConfirmMeetingTime(data){
  502. this.form.meetingTime = this.format(data,'yyyy-MM-dd');
  503. this.meetingTime = data;
  504. this.showMeetingTime = false;
  505. },
  506. onConfirmBiddingDate(data){
  507. this.form.biddingDate = this.format(data,'yyyy-MM-dd');
  508. this.biddingDate = data;
  509. this.showBiddingDate = false;
  510. },
  511. onConfirmReviewTime(data){
  512. this.form.reviewTime = this.format(data,'yyyy-MM-dd');
  513. this.reviewTime = data;
  514. this.showReviewTime = false;
  515. },
  516. onConfirmBuildingTime(data){
  517. this.form.buildingTime = this.format(data,'yyyy-MM-dd');
  518. this.buildingTime = data;
  519. this.showBuildingTime = false;
  520. },
  521. onSubmit(){
  522. addInfo(this.form).then((response) => {
  523. if (response.code == 200){
  524. this.$notify({ type: 'success', message: '新增成功' });
  525. setTimeout(function(){
  526. history.back(-1);
  527. },2000)
  528. }
  529. });
  530. }
  531. },
  532. }
  533. </script>
  534. <style scoped lang="scss">
  535. .home_wrapper{
  536. background: #e9e9e9;
  537. min-height: 100vh;
  538. width: 100vw;
  539. .header_main {
  540. height: 116px;
  541. background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat;
  542. background-size: 100% 100%;
  543. position: fixed;
  544. top: 0;
  545. left: 0;
  546. width: 100%;
  547. font-size: 36px;
  548. line-height: 116px;
  549. text-align: center;
  550. color: #fff;
  551. position: relative;
  552. .return_btn {
  553. width: 24px;
  554. height: 43.2px;
  555. background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
  556. background-size: 20px 36px;
  557. position: absolute;
  558. left: 38px;
  559. top: 36px;
  560. }
  561. .add_btn {
  562. width: 56.4px;
  563. height: 40.8px;
  564. background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
  565. background-size: 47px 34px;
  566. position: absolute;
  567. right: 38px;
  568. top: 36px;
  569. }
  570. }
  571. .list_main{
  572. padding:25px;
  573. background: #ffffff;
  574. width: 94%;
  575. margin: 25px auto 0;
  576. border-radius: 15PX;
  577. box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
  578. }
  579. .titBox{
  580. display: flex;
  581. align-items: center;
  582. }
  583. .tit{
  584. font-size: 36px;
  585. font-weight: bold;
  586. }
  587. /deep/ .van-cell{
  588. padding-left: 0!important;
  589. padding-right: 0!important;
  590. padding-bottom: 0!important;
  591. }
  592. /deep/ .van-field__label{
  593. padding-left: 10PX;
  594. width: 8.2em;
  595. }
  596. /deep/ .van-cell--required::before{
  597. left: 0;
  598. }
  599. }
  600. </style>