管理系统PC端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

300 lignes
12 KiB

  1. <template>
  2. <div class="home_wrapper">
  3. <van-nav-bar
  4. title="经营信息维护"
  5. left-arrow
  6. placeholder
  7. safe-area-inset-top
  8. @click-left="onClickLeft"
  9. />
  10. <van-form @submit="onSubmit">
  11. <div class="main">
  12. <p class="title"><i></i>经营信息</p>
  13. <van-field readonly v-model="form.deptName" label="区域位置名称" placeholder="请输入" input-align="right" label-width="auto" />
  14. <van-field readonly required :rules="[{ required: true }]" v-model="form.dkbm" label="地块编码" placeholder="请输入" input-align="right" label-width="auto" />
  15. <van-field readonly :rules="[{ required: true }]" v-model="form.dkmc" label="地块名称" placeholder="请输入" input-align="right" label-width="auto" required />
  16. <van-field readonly v-model="form.dkdz" label="地块东至" placeholder="请输入" input-align="right" label-width="auto" />
  17. <van-field readonly v-model="form.dkxz" label="地块西至" placeholder="请输入" input-align="right" label-width="auto" />
  18. <van-field readonly v-model="form.dknz" label="地块南至" placeholder="请输入" input-align="right" label-width="auto" />
  19. <van-field readonly v-model="form.dkbz" label="地块北至" placeholder="请输入" input-align="right" label-width="auto" />
  20. <van-field required :rules="[{ required: true }]" v-model="form.jymj" label="经营面积" placeholder="请输入" input-align="right" label-width="auto" />
  21. <van-field required :rules="[{ required: true }]" readonly @click="showJyfsPicker = true" v-model="form.jyfsText" label="经营方式" placeholder="请输入" input-align="right" label-width="auto" />
  22. <van-popup v-model="showJyfsPicker" round position="bottom">
  23. <van-picker
  24. show-toolbar
  25. :columns="dict.type.jyfs"
  26. value-key="label"
  27. @cancel="showJyfsPicker = false"
  28. @confirm="onConfirmJyfs"
  29. />
  30. </van-popup>
  31. <van-field readonly @click="showJydxlxPicker = true" v-model="form.jydxlxText" label="经营对象类型" placeholder="请输入" input-align="right" label-width="auto" />
  32. <van-popup v-model="showJydxlxPicker" round position="bottom">
  33. <van-picker
  34. show-toolbar
  35. :columns="dict.type.jydxlx"
  36. value-key="label"
  37. @cancel="showJydxlxPicker = false"
  38. @confirm="onConfirmJydxlx"
  39. />
  40. </van-popup>
  41. <van-field required :rules="[{ required: true }]" v-model="form.jydxmc" label="经营对象名称" placeholder="请输入" input-align="right" label-width="auto" />
  42. <van-field readonly @click="showJydxzjlxPicker = true" v-model="form.jydxzjlxText" label="经营对象证件类型" placeholder="请输入" input-align="right" label-width="auto" />
  43. <van-popup v-model="showJydxzjlxPicker" round position="bottom">
  44. <van-picker
  45. show-toolbar
  46. :columns="dict.type.zjlx"
  47. value-key="label"
  48. @cancel="showJydxzjlxPicker = false"
  49. @confirm="onConfirmJydxzjlx"
  50. />
  51. </van-popup>
  52. <van-field v-model="form.jydxzjhm" label="经营对象证件号码" placeholder="请输入" input-align="right" label-width="auto" />
  53. <van-field readonly @click="showSfqdhtPicker = true" v-model="form.sfqdhtText" label="是否签订合同" placeholder="请输入" input-align="right" label-width="auto" />
  54. <van-popup v-model="showSfqdhtPicker" round position="bottom">
  55. <van-picker
  56. show-toolbar
  57. :columns="dict.type.is_common"
  58. value-key="label"
  59. @cancel="showSfqdhtPicker = false"
  60. @confirm="onConfirmSfqdht"
  61. />
  62. </van-popup>
  63. <van-field required :rules="[{ required: true }]" readonly @click="showJykssjPicker = true" v-model="form.jykssj" label="经营开始时间" placeholder="请输入" input-align="right" label-width="auto" />
  64. <van-popup v-model="showJykssjPicker" round position="bottom">
  65. <van-datetime-picker
  66. v-model="jykssj"
  67. type="date"
  68. title="选择年月日"
  69. :min-date="minDate"
  70. :max-date="maxDate"
  71. @cancel="showJykssjPicker = false"
  72. @confirm="onConfirmJykssj"
  73. />
  74. </van-popup>
  75. <van-field required :rules="[{ required: true }]" readonly @click="showJyjssjPicker = true" v-model="form.jyjssj" label="经营结束时间" placeholder="请输入" input-align="right" label-width="auto" />
  76. <van-popup v-model="showJyjssjPicker" round position="bottom">
  77. <van-datetime-picker
  78. v-model="jyjssj"
  79. type="date"
  80. title="选择年月日"
  81. :min-date="minDate"
  82. :max-date="maxDate"
  83. @cancel="showJyjssjPicker = false"
  84. @confirm="onConfirmJyjssj"
  85. />
  86. </van-popup>
  87. <van-field required :rules="[{ required: true }]" v-model="form.cbje" label="承包金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
  88. <van-field v-model="form.dxje" label="兑现金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
  89. <van-field v-model="form.sqje" label="尚欠金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
  90. <van-field v-model="form.nsy" label="年收益(元)" placeholder="请输入" input-align="right" label-width="auto" />
  91. <van-field v-model="form.bzxx" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
  92. <van-field readonly label="实物图" placeholder="" input-align="right" label-width="auto" />
  93. <image-upload v-model="form.dkImg"/>
  94. <van-field readonly required :rules="[{ required: true }]" @click="showSurveyStatusPicker = true" v-model="form.surveyStatusText" label="调查状态" placeholder="请输入" input-align="right" label-width="auto" />
  95. <van-popup v-model="showSurveyStatusPicker" round position="bottom">
  96. <van-picker
  97. show-toolbar
  98. :columns="dict.type.survey_status"
  99. value-key="label"
  100. @cancel="showSurveyStatusPicker = false"
  101. @confirm="onConfirmSurveyStatus"
  102. />
  103. </van-popup>
  104. </div>
  105. <van-button round block type="primary" native-type="submit" class="subClass">提交</van-button>
  106. </van-form>
  107. </div>
  108. </template>
  109. <script>
  110. import { getLandDetail } from "@/api/resource/land"
  111. import { getOperationDetail, updateOperation, addOperation } from "@/api/resource/operation"
  112. export default {
  113. dicts: ['zjlx', 'survey_status', 'is_common', 'jydxlx', 'jyfs'],
  114. name: "appEdit",
  115. data() {
  116. return {
  117. showJyfsPicker: false,
  118. showSfqdhtPicker: false,
  119. showJydxlxPicker: false,
  120. showJydxzjlxPicker: false,
  121. showJykssjPicker: false,
  122. showJyjssjPicker: false,
  123. showSurveyStatusPicker: false,
  124. minDate: new Date(2020, 0, 1),
  125. maxDate: new Date(2025, 10, 1),
  126. form: {
  127. },
  128. jykssj:new Date(),
  129. jyjssj:new Date(),
  130. openPic: [],
  131. openPic2: [],
  132. };
  133. },
  134. created() {
  135. this.getDetail()
  136. },
  137. methods: {
  138. onClickLeft(){
  139. history.back(-1);
  140. },
  141. getDetail(){
  142. getOperationDetail(this.$route.query.dkbm).then(response => {
  143. if (response.data){
  144. response.data.jyfsText = this.selectDictLabel(this.dict.type.jyfs,response.data.jyfs);
  145. response.data.jydxlxText = this.selectDictLabel(this.dict.type.jydxlx,response.data.jydxlx);
  146. response.data.jydxzjlxText = this.selectDictLabel(this.dict.type.zjlx,response.data.jydxzjlx);
  147. response.data.sfqdhtText = this.selectDictLabel(this.dict.type.is_common,response.data.sfqdht);
  148. response.data.surveyStatusText = this.selectDictLabel(this.dict.type.survey_status,response.data.surveyStatus);
  149. this.jykssj = new Date(response.data.jykssj);
  150. this.jyjssj = new Date(response.data.jyjssj);
  151. this.form = response.data
  152. }else{
  153. getLandDetail(this.$route.query.dkbm).then(response => {
  154. response.data.jyfsText = '家庭承包';
  155. response.data.jyfs = '110';
  156. response.data.jydxlxText = '农户';
  157. response.data.jydxlx = '1';
  158. response.data.jydxzjlxText = '居民身份证';
  159. response.data.jydxzjlx = '1';
  160. response.data.sfqdhtText = '是';
  161. response.data.sfqdht = '1';
  162. response.data.surveyStatusText = '已调查';
  163. response.data.surveyStatus = '2';
  164. this.form = response.data
  165. })
  166. }
  167. // getInfoByImportCode(response.data.importCode).then((res) => {
  168. // this.form.deptId = res.data.deptId
  169. // });
  170. });
  171. },
  172. onConfirmJydxlx(value) {
  173. this.form.jydxlxText = value.label;
  174. this.form.jydxlx = value.value;
  175. this.showJydxlxPicker = false;
  176. },
  177. onConfirmJyfs(value) {
  178. this.form.jyfsText = value.label;
  179. this.form.jyfs = value.value;
  180. this.showJyfsPicker = false;
  181. },
  182. onConfirmJydxzjlx(value) {
  183. this.form.jydxzjlxText = value.label;
  184. this.form.jydxzjlx = value.value;
  185. this.showJydxzjlxPicker = false;
  186. },
  187. onConfirmSfqdht(value) {
  188. this.form.sfqdhtText = value.label;
  189. this.form.sfqdht = value.value;
  190. this.showSfqdhtPicker = false;
  191. },
  192. onConfirmJykssj(data) {
  193. this.form.jykssj = this.format(data, 'yyyy-MM-dd');
  194. this.showJykssjPicker = false;
  195. },
  196. onConfirmJyjssj(data) {
  197. this.form.jyjssj = this.format(data, 'yyyy-MM-dd');
  198. this.showJyjssjPicker = false;
  199. },
  200. onConfirmSurveyStatus(value) {
  201. this.form.surveyStatusText = value.label;
  202. this.form.surveyStatus = value.value;
  203. this.showSurveyStatusPicker = false;
  204. },
  205. /** 提交按钮 */
  206. onSubmit() {
  207. if (!this.form.id){
  208. addOperation(this.form).then(response => {
  209. this.$modal.msgSuccess("新增成功")
  210. setTimeout(function(){
  211. history.back(-1);
  212. },2000)
  213. })
  214. }else{
  215. updateOperation(this.form).then(response => {
  216. if (response.code == 200){
  217. this.$modal.msgSuccess("修改成功")
  218. setTimeout(function(){
  219. history.back(-1);
  220. },2000)
  221. }
  222. })
  223. }
  224. },
  225. },
  226. };
  227. </script>
  228. <style scoped lang="scss">
  229. p{margin: 0;}
  230. .home_wrapper{
  231. width: 100vw;
  232. min-height: 100vh;
  233. background: #F6F9FB;
  234. padding-bottom: 5vh;
  235. }
  236. .van-nav-bar{
  237. background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
  238. ::v-deep.van-icon{
  239. color: #000000;
  240. }
  241. }
  242. .main{
  243. width: 94%;
  244. margin: 3vw auto;
  245. padding: 3vw;
  246. background-color: #ffffff;
  247. border-radius: 10px;
  248. overflow: hidden;
  249. }
  250. .title{
  251. display: flex;
  252. align-items: center;
  253. font-size: 20px;
  254. font-weight: bold;
  255. margin-bottom: 10px;
  256. i{
  257. width: 5px;
  258. height: 20px;
  259. display: block;
  260. background-color: #29D2AF;
  261. margin-right: 10px;
  262. }
  263. }
  264. .subClass{
  265. background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
  266. border-radius: 50px 50px 50px 50px;
  267. border: none;
  268. width: 90%;
  269. margin: 3vw auto;
  270. height: 50px;
  271. display: flex;
  272. align-items: center;
  273. justify-content: center;
  274. color: #ffffff;
  275. font-size: 18px;
  276. }
  277. </style>