管理系统PC端
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.
 
 
 
 

214 line
8.5 KiB

  1. <template>
  2. <div class="home_wrapper">
  3. <van-nav-bar title="经营信息维护" left-arrow placeholder safe-area-inset-top @click-left="onClickLeft"/>
  4. <van-form @submit="onSubmit">
  5. <div class="main">
  6. <p class="title"><i></i>经营信息</p>
  7. <van-field readonly v-model="form.deptName" label="区域位置名称" placeholder="请输入" input-align="right" label-width="auto" />
  8. <van-field readonly v-model="form.dkbm" label="地块编码" placeholder="请输入" input-align="right" label-width="auto" required :rules="[{ required: true }]"/>
  9. <van-field readonly v-model="form.dkmc" label="地块名称" placeholder="请输入" input-align="right" label-width="auto" required :rules="[{ required: true }]"/>
  10. <van-field readonly v-model="form.dkdz" label="地块东至" placeholder="请输入" input-align="right" label-width="auto" />
  11. <van-field readonly v-model="form.dkxz" label="地块西至" placeholder="请输入" input-align="right" label-width="auto" />
  12. <van-field readonly v-model="form.dknz" label="地块南至" placeholder="请输入" input-align="right" label-width="auto" />
  13. <van-field readonly v-model="form.dkbz" label="地块北至" placeholder="请输入" input-align="right" label-width="auto" />
  14. <van-field v-model="form.jymj" label="经营面积" placeholder="请输入" type="number" input-align="right" label-width="auto" required :rules="[{ required: true }]"/>
  15. <field-select v-model="form.jyfs" label="经营方式" placeholder="请选择" value-key="dictLabel" data-key="dictValue" remote-url="/system/dict/data/type/jyfs" :on-remote-response="'data'" required/>
  16. <field-select v-model="form.jydxlx" label="经营对象类型" placeholder="请选择" value-key="dictLabel" data-key="dictValue" remote-url="/system/dict/data/type/jydxlx" :on-remote-response="'data'" required/>
  17. <van-field v-model="form.jydxmc" label="经营对象名称" placeholder="请输入" input-align="right" label-width="auto" required :rules="[{ required: true }]"/>
  18. <field-select v-model="form.jydxlx" label="经营对象证件类型" placeholder="请选择" value-key="dictLabel" data-key="dictValue" remote-url="/system/dict/data/type/zjlx" :on-remote-response="'data'"/>
  19. <van-field v-model="form.jydxzjhm" label="经营对象证件号码" placeholder="请输入" input-align="right" label-width="auto" />
  20. <field-radio v-model="form.sfqdht" label="是否签订合同" value-key="dictLabel" data-key="dictValue" remote-url="/system/dict/data/type/is_common" :on-remote-response="'data'" required/>
  21. <field-date-picker v-model="form.jykssj" label="经营开始时间" placeholder="请选择" formatter="yyyy-MM-dd" input-align="right" type="date" :required="true" size="large"/>
  22. <field-date-picker v-model="form.jyjssj" label="经营结束时间" placeholder="请选择" formatter="yyyy-MM-dd" input-align="right" type="date" :required="true" size="large"/>
  23. <van-field v-model="form.cbje" label="承包金额(元)" placeholder="请输入" type="number" input-align="right" label-width="auto" required :rules="[{ required: true }]"/>
  24. <van-field v-model="form.dxje" label="兑现金额(元)" placeholder="请输入" type="number" input-align="right" label-width="auto" />
  25. <van-field v-model="form.sqje" label="尚欠金额(元)" placeholder="请输入" type="number" input-align="right" label-width="auto" />
  26. <van-field v-model="form.nsy" label="年收益(元)" placeholder="请输入" type="number" input-align="right" label-width="auto" />
  27. <van-field v-model="form.bzxx" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
  28. <field-radio v-model="form.surveyStatus" label="调查状态" value-key="dictLabel" data-key="dictValue" remote-url="/system/dict/data/type/survey_status" :on-remote-response="'data'" required/>
  29. <van-field label="实物图" placeholder="" input-align="right" label-width="auto" />
  30. <CommonUpload v-model="form.dkImg" accept="image/*" multiple :deletable="true" :show-upload="true" fileField="file" />
  31. </div>
  32. <van-button round block type="primary" native-type="submit" class="subClass">提交</van-button>
  33. </van-form>
  34. </div>
  35. </template>
  36. <script>
  37. import { getLandDetail } from "@/api/resource/land"
  38. import { getOperationDetail, updateOperation, addOperation } from "@/api/resource/operation"
  39. import { getInfoByImportCode } from "@/api/system/dept";
  40. import FieldSelect from "@/components/form/FieldSelect.vue";
  41. import FieldRadio from "@/components/form/FieldRadio.vue";
  42. import FieldDatePicker from "@/components/form/FieldDatePicker.vue";
  43. import CommonUpload from "@/components/form/CommonUpload.vue";
  44. export default {
  45. dicts: ['zjlx', 'survey_status', 'is_common', 'jydxlx', 'jyfs'],
  46. name: "appEdit",
  47. components: {FieldSelect, FieldRadio, FieldDatePicker, CommonUpload},
  48. data() {
  49. return {
  50. importCode: null,
  51. form: {
  52. dkbm: null,
  53. dkmc: null,
  54. dkdz: null,
  55. dkxz: null,
  56. dknz: null,
  57. dkbz: null,
  58. jymj: null,
  59. jyfs: null,
  60. jydxlx: null,
  61. jydxmc: null,
  62. jydxzjlx: null,
  63. jydxzjhm: null,
  64. sfqdht: null,
  65. jykssj: null,
  66. jyjssj: null,
  67. cbje: null,
  68. dxje: null,
  69. sqje: null,
  70. nsy: null,
  71. bzxx: null,
  72. dkImg: null,
  73. surveyStatus: null,
  74. importCode: null,
  75. deptName: null,
  76. },
  77. };
  78. },
  79. created() {
  80. this.getDetail()
  81. },
  82. methods: {
  83. onClickLeft(){
  84. history.back(-1);
  85. },
  86. getDetail(){
  87. getOperationDetail(this.$route.query.dkbm).then(response => {
  88. if (response.data){
  89. this.form = response.data
  90. }else{
  91. getLandDetail(this.$route.query.dkbm).then(response => {
  92. //this.form = response.data
  93. this.form.deptName = response.data.deptName;
  94. this.form.importCode = response.data.importCode;
  95. this.importCode = response.data.importCode;
  96. this.form.dkbm = response.data.dkbm;
  97. this.form.dkmc = response.data.dkmc;
  98. this.form.dkdz = response.data.dkdz;
  99. this.form.dkxz = response.data.dkxz;
  100. this.form.dknz = response.data.dknz;
  101. this.form.dkbz = response.data.dkbz;
  102. this.form.jymj = response.data.scmjm;
  103. this.form.jyfs = '110';
  104. this.form.jydxlx = '1';
  105. this.form.jydxzjlx = '1';
  106. this.form.sfqdht = '1';
  107. this.form.surveyStatus = '2';
  108. getInfoByImportCode(response.data.importCode).then((res) => {
  109. this.form.deptId = res.data.deptId
  110. });
  111. });
  112. }
  113. });
  114. },
  115. /** 提交按钮 */
  116. onSubmit() {
  117. if (!this.form.id){
  118. addOperation(this.form).then(response => {
  119. this.$modal.msgSuccess("新增成功")
  120. setTimeout(function(){
  121. history.back(-1);
  122. },2000)
  123. })
  124. }else{
  125. updateOperation(this.form).then(response => {
  126. if (response.code == 200){
  127. this.$modal.msgSuccess("修改成功")
  128. setTimeout(function(){
  129. history.back(-1);
  130. },2000)
  131. }
  132. })
  133. }
  134. },
  135. },
  136. };
  137. </script>
  138. <style scoped lang="scss">
  139. p{margin: 0;}
  140. .home_wrapper{
  141. width: 100vw;
  142. min-height: 100vh;
  143. background: #F6F9FB;
  144. padding-bottom: 5vh;
  145. }
  146. .van-nav-bar{
  147. background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
  148. ::v-deep.van-icon{
  149. color: #000000;
  150. }
  151. }
  152. .main{
  153. width: 94%;
  154. margin: 3vw auto;
  155. padding: 3vw;
  156. background-color: #ffffff;
  157. border-radius: 10px;
  158. overflow: hidden;
  159. }
  160. .title{
  161. display: flex;
  162. align-items: center;
  163. font-size: 20px;
  164. font-weight: bold;
  165. margin-bottom: 10px;
  166. i{
  167. width: 5px;
  168. height: 20px;
  169. display: block;
  170. background-color: #29D2AF;
  171. margin-right: 10px;
  172. }
  173. }
  174. .subClass{
  175. background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
  176. border-radius: 50px 50px 50px 50px;
  177. border: none;
  178. width: 90%;
  179. margin: 3vw auto;
  180. height: 50px;
  181. display: flex;
  182. align-items: center;
  183. justify-content: center;
  184. color: #ffffff;
  185. font-size: 18px;
  186. }
  187. </style>