addIntentionalDeposit.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <template>
  2. <div>
  3. <el-form ref="form" v-loading="addLoading" :model="form" style="width: 100%;padding: 5px" :rules="rules">
  4. <el-row>
  5. <el-col style="padding-bottom: 10px">
  6. <span class="card_title">意向金登记</span>
  7. <el-card shadow="always" style="padding: 15px 5px 5px 15px">
  8. <el-row>
  9. <el-col :span="3" class="col-txt"><span>意向金编号:</span></el-col>
  10. <el-col :span="3" class="col-txt"><span>{{ serialNumber }}</span></el-col>
  11. </el-row>
  12. <el-row>
  13. <el-col :span="3" class="col-txt"><span>*应收定金(元)</span></el-col>
  14. <el-col :span="9" class="col-input">
  15. <el-form-item prop="receivableMoney">
  16. <el-input v-model="form.receivableMoney" />
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="3" class="col-txt"><span>*实收金额(元)</span></el-col>
  20. <el-col :span="9" class="col-input">
  21. <el-form-item prop="receivedAmount">
  22. <el-input v-model="form.receivedAmount" />
  23. </el-form-item>
  24. </el-col>
  25. </el-row>
  26. <el-row>
  27. <el-col :span="3" class="col-txt"><span>*收款方式</span></el-col>
  28. <el-col :span="9" class="col-input">
  29. <el-form-item prop="paymentMethod">
  30. <el-select
  31. v-model="form.paymentMethod"
  32. :popper-append-to-body="false"
  33. popper-class="statistic_base"
  34. placeholder=""
  35. filterable
  36. clearable
  37. >
  38. <el-option
  39. v-for="item in dc_data.COLLECTION_METHODS"
  40. :key="item.value"
  41. popper-class="statistic_base"
  42. :popper-append-to-body="false"
  43. :label="item.label"
  44. :value="item.value"
  45. />
  46. </el-select>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="3" class="col-txt"><span>*收款时间</span></el-col>
  50. <el-col :span="9" class="col-input">
  51. <el-form-item prop="collectionTime">
  52. <el-date-picker
  53. v-model="form.collectionTime"
  54. popper-class="statistic_base"
  55. type="date"
  56. placeholder="年月日"
  57. value-format="yyyy-MM-dd"
  58. />
  59. </el-form-item>
  60. </el-col>
  61. </el-row>
  62. <el-row>
  63. <el-col :span="3" class="col-txt"><span>备注</span></el-col>
  64. <el-col :span="21" class="col-input">
  65. <el-form-item>
  66. <el-input v-model="form.remark" type="textarea" :autosize="{ minRows: 2, maxRows: 100}" placeholder="请输入内容" />
  67. </el-form-item>
  68. </el-col>
  69. </el-row>
  70. <el-row>
  71. <el-col :span="3" class="col-txt"><span>附件</span></el-col>
  72. <el-col :span="15" class="col-input">
  73. <el-form-item>
  74. <el-upload
  75. class="upload-demo"
  76. action="/server/wx/fileController/uploadImage"
  77. :http-request="uploadPhoto"
  78. :before-remove="beforeRemove"
  79. multiple
  80. :file-list="fileList"
  81. >
  82. <el-button size="small" type="primary">点击上传</el-button>
  83. <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">
  84. <el-tooltip class="item" effect="dark" :content="file.name" placement="top-start">
  85. <a :href="file.url">{{ file.name }}</a>
  86. </el-tooltip>
  87. <span class="el-upload-list__item-actions">
  88. <i class="el-icon-delete" @click="handlePictureRemove(file,fileList)" />
  89. </span>
  90. </div>
  91. </el-upload>
  92. </el-form-item>
  93. </el-col>
  94. <el-col :span="6" class="col-input">
  95. <el-button type="text" style="float: right">意向金收据下载</el-button>
  96. </el-col>
  97. </el-row>
  98. <el-row>
  99. <el-col :span="3" class="col-txt"><span>经办时间</span></el-col>
  100. <el-col :span="3" class="col-input"><span>{{ dateStr }}</span></el-col>
  101. </el-row>
  102. <el-row>
  103. <el-col :span="3" class="col-txt"><span>经办人</span></el-col>
  104. <el-col :span="3" class="col-input"><span>{{ username }}</span></el-col>
  105. </el-row>
  106. </el-card>
  107. </el-col>
  108. </el-row>
  109. </el-form>
  110. <div style="text-align: right">
  111. <el-button @click="cancel">取 消</el-button>
  112. <el-button type="primary" @click="confirmSubmit()">提 交</el-button>
  113. </div>
  114. </div>
  115. </template>
  116. <script>
  117. import Base from '@/views/base/base'
  118. import BaseData from '@/views/base/baseData'
  119. import { upload } from '@/static/utils/channel'
  120. export default {
  121. name: 'AddIntentionalDepositVue',
  122. components: { },
  123. mixins: [Base, BaseData],
  124. data() {
  125. return {
  126. dc_key: ['PAYMENT_METHODS', 'COLLECTION_METHODS'],
  127. form: {
  128. },
  129. rules: {
  130. receivableMoney: [{ required: true, trigger: 'blur', message: '请输入应收定金' }],
  131. receivedAmount: [{ required: true, trigger: 'blur', message: '请输入实收金额' }],
  132. paymentMethod: [{ required: true, trigger: 'change', message: '请输入实收金额' }],
  133. collectionTime: [{ required: true, trigger: 'blur', message: '请选择收款时间' }]
  134. },
  135. addLoading: false,
  136. serialNumber: '',
  137. fileList: [],
  138. customerManagementId: '',
  139. dateStr: '',
  140. username: ''
  141. }
  142. },
  143. mounted() {
  144. const myDate = new Date()
  145. const dateStr = myDate.getFullYear() + '-' + (myDate.getMonth() + 1) + '-' + myDate.getDate()
  146. const username = this.$common.currUser().username
  147. this.dateStr = dateStr
  148. this.username = username
  149. },
  150. methods: {
  151. initData(data) {
  152. this.customerManagementId = data.id
  153. this.initDict(this.dc_key).then(res => {
  154. this.getByCustomerManagementId(data)
  155. })
  156. },
  157. handleChange(value) {
  158. },
  159. getByCustomerManagementId(val) {
  160. const data = {
  161. customerManagementId: val.id
  162. }
  163. this.baseRequest('getByCustomerManagementId', data).then(res => {
  164. if (res.data) {
  165. this.form = res.data
  166. this.serialNumber = this.form.serialNumber
  167. this.form.paymentMethod = this.form.paymentMethod + ''
  168. if (this.form.fileList) {
  169. this.fileList = JSON.parse(this.form.fileList)
  170. }
  171. this.dateStr = this.form.createdAt
  172. this.username = this.form.createdName
  173. } else {
  174. this.getSerialNumber(val)
  175. this.getFQById(val)
  176. }
  177. })
  178. },
  179. getSerialNumber(val) {
  180. const data = {
  181. customerManagementId: val.id
  182. }
  183. this.baseRequest('getSerialNumber', data).then(res => {
  184. this.serialNumber = res.data
  185. })
  186. },
  187. getFQById(val) {
  188. const data = {
  189. id: val.discId
  190. }
  191. this.baseFQRequest('getById', data).then(res => {
  192. this.$set(this.form, 'receivableMoney', res.data.subscriptionFunds)
  193. })
  194. },
  195. confirmSubmit: function() {
  196. const _this = this
  197. this.$refs.form.validate(valid => {
  198. if (valid) {
  199. let soaUrl = 'add'
  200. // 已收取状态
  201. if (_this.form.id) {
  202. soaUrl = 'edit'
  203. }
  204. const extraData = {
  205. customerManagementId: this.customerManagementId,
  206. serialNumber: _this.serialNumber,
  207. fileList: JSON.stringify(_this.fileList)
  208. }
  209. const postData = Object.assign({}, _this.form, extraData)
  210. this.baseRequest(soaUrl, postData).then(res => {
  211. if (res.data.code === 200) {
  212. _this.$message({
  213. message: '新增成功',
  214. type: 'success'
  215. })
  216. _this.cancel()
  217. } else {
  218. _this.$message({
  219. message: res.msg,
  220. type: 'warning'
  221. })
  222. }
  223. }).catch(err => {
  224. _this.$message({
  225. message: err,
  226. type: 'warning'
  227. })
  228. })
  229. } else {
  230. console.log('error submit!!')
  231. return false
  232. }
  233. })
  234. },
  235. cancel() {
  236. this.$emit('cancel')
  237. },
  238. uploadPhoto: function(param) {
  239. upload(param, true).then((res) => {
  240. this.fileList.push(res)
  241. })
  242. },
  243. baseRequest(opUrl, postData) {
  244. return this.$channel.globeRequest('IntentionalDepositController', opUrl, postData, 'project')
  245. },
  246. baseFQRequest: function(opUrl, postData) {
  247. return this.$channel.baseRequest('ParkFloorDiscController', opUrl, postData, 'User')
  248. }
  249. }
  250. }
  251. </script>
  252. <style scoped>
  253. </style>