company.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <view class="">
  3. <view class="data-from" v-for="item in firmList">
  4. <en-input label="企业名称" type="text" v-model="item.firm_name"
  5. v-if="verifyKey('firm_name')" placeholder="请输入公司名称"></en-input>
  6. <en-date label="成立时间" v-model="item.establish_date"
  7. v-if="verifyKey('establish_date')" placeholder="选择成立时间"></en-date>
  8. <en-input label="年交费额" v-model="item.year_money"
  9. v-if="verifyKey('year_money')" type="number" placeholder="请输入年交费额" rightText="元"></en-input>
  10. <en-city label="实际经营地" v-model="item.establish_city"
  11. v-if="verifyKey('establish_city')" placeholder="请选择省、市、区"></en-city>
  12. <en-input label="经营详细地址" v-model="item.establish_address"
  13. v-if="verifyKey('establish_address')" type="text" placeholder="请输入经营详细地址"></en-input>
  14. <en-upload label="上传企业相关图片" v-model="item.firm_img"
  15. v-if="verifyKey('firm_img')" :imageWidth="180"></en-upload>
  16. <en-input label="年交税额" v-model="item.year_tax"
  17. v-if="verifyKey('year_tax')" type="number" placeholder="请输入年交税额" rightText="元"></en-input>
  18. <en-input label="年开票额" v-model="item.year_invoice"
  19. v-if="verifyKey('year_invoice')" type="number" placeholder="请输入年开票额" rightText="元"></en-input>
  20. <en-select label="税务等级" v-model="item.tax_grade"
  21. v-if="verifyKey('tax_grade')" placeholder="请选择税务等级" :local-data="taxGradeData" ></en-select>
  22. <en-radio label="税务有无断缴" v-model="item.is_end_tax"
  23. v-if="verifyKey('is_end_tax')" :radio-data="endData" :noBox="true"></en-radio>
  24. </view>
  25. <en-blank message="暂无企业信息,快来添加吧!" v-if="firmList.length<=0"></en-blank>
  26. <button class="size-26 r-10 button-color house-button m-t30" hover-class="is-hover"
  27. @click="addItem">+添加企业</button>
  28. </view>
  29. </template>
  30. <script>
  31. import enInput from "@/components/en-from/en-input/en-input.vue"
  32. import EnCity from "@/components/en-from/en-city/en-city.vue";
  33. import EnUpload from "@/components/en-from/en-upload/en-upload.vue";
  34. import EnSelect from "@/components/en-from/en-select/en-select.vue";
  35. import {getTaskOptions} from "@/api/task";
  36. import md5 from "js-md5";
  37. import EnDate from "@/components/en-from/en-date/en-date.vue";
  38. import EnBlank from "@/components/en-utils/en-blank/en-blank.vue";
  39. import tools from "@/service/tools";
  40. import {getSn} from "@/api/common";
  41. export default {
  42. name:'property-guarantee',
  43. components: {
  44. EnBlank,
  45. EnDate,
  46. EnSelect,
  47. EnUpload,
  48. EnCity,
  49. enInput
  50. },
  51. props: {
  52. 'showKeys': {
  53. default: []
  54. },
  55. 'value': {
  56. default: {}
  57. },
  58. 'itemKey': {
  59. default: 0
  60. }
  61. },
  62. data() {
  63. return {
  64. endData:[{'id':1,'name':'有'},{'id':0,'name':'无'}],
  65. taxGradeData:[],
  66. firmItem:{
  67. 'firm_name':'',
  68. 'establish_date':'',
  69. 'year_money':'',
  70. 'establish_city':'',
  71. 'establish_address':'',
  72. 'firm_img':[],
  73. 'year_tax':'',
  74. 'tax_grade':'',
  75. 'is_end_tax':'0',
  76. 'year_invoice':'',
  77. },
  78. firmList:[]
  79. }
  80. },
  81. watch: {
  82. 'firmList': {
  83. handler() {
  84. this.$emit("input", this.firmList);
  85. },
  86. deep: true
  87. },
  88. 'value': {
  89. handler() {
  90. if (this.value) {
  91. this.setValue()
  92. }
  93. },
  94. deep: true
  95. },
  96. },
  97. mounted() {
  98. this.getTaskOptions()
  99. this.setValue()
  100. },
  101. methods: {
  102. addItem() {
  103. tools.showLoading()
  104. getSn().then((res)=>{
  105. if(res.code===1){
  106. this.firmList.push({'property_type':4,'property_sn':res.data,'data':this.firmItem})
  107. }else {
  108. tools.error('编号生成失败')
  109. }
  110. tools.hideLoading()
  111. })
  112. },
  113. setSendMd5() {
  114. let str = JSON.stringify(this.value)
  115. this.sendMd5 = md5(JSON.stringify(this.firmList))
  116. return md5(str)
  117. },
  118. setValue() {
  119. if (this.value) {
  120. let sendMd5 = this.setSendMd5()
  121. if (sendMd5 !== this.sendMd5) {
  122. this.firmList = this.value
  123. }
  124. }
  125. },
  126. verifyKey(field) {
  127. return this.showKeys.indexOf(field) >= 0
  128. },
  129. async getTaskOptions() {
  130. const res = await getTaskOptions({'type': 5})
  131. if (res.code === 1) {
  132. res.data.taxGrade.forEach((val) => {
  133. this.taxGradeData.push({'text': val.name, 'value': val.value})
  134. })
  135. }
  136. },
  137. delItem() {
  138. uni.showModal({
  139. title: '警告',
  140. content: '是否删除当前企业信息!',
  141. success: (res) => {
  142. if (res.confirm) {
  143. this.$emit('delItem', this.itemKey)
  144. }
  145. }
  146. });
  147. }
  148. }
  149. }
  150. </script>
  151. <style>
  152. .house-button {
  153. height: 70rpx;
  154. line-height: 70rpx;
  155. background: #FFFFFF;
  156. border: 1rpx solid #0FB160;
  157. }
  158. </style>