移动端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

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