detail.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. <template>
  2. <a-card :bordered="false">
  3. <a-page-header
  4. :title="formData.id ? '编辑企业资质备案' : '新增企业资质备案'"
  5. @back="onClose"
  6. >
  7. <template #extra>
  8. <a-button style="margin-right: 8px" @click="onClose">关闭</a-button>
  9. <a-popconfirm title="请确认是否保存?" @confirm="onTemp" v-if="!isView">
  10. <a-button style="margin-right: 8px" :loading="submitLoading">保存</a-button>
  11. </a-popconfirm>
  12. <a-popconfirm title="请确认是否申报?" @confirm="onSubmit" v-if="!isView">
  13. <a-button type="primary" :loading="submitLoading">申报</a-button>
  14. </a-popconfirm>
  15. </template>
  16. </a-page-header>
  17. <a-form ref="formRef" :model="formData" :rules="formRules" layout="inline">
  18. <a-row :gutter="[0, 16]">
  19. <a-col :span="24">
  20. <a-form-item label="资质类型:" name="zzType">
  21. <a-radio-group v-model:value="formData.zzType" :disabled="isView" placeholder="请选择资质类型"
  22. :options="zzTypeOptions"/>
  23. </a-form-item>
  24. </a-col>
  25. </a-row>
  26. <div class="__cus-title_1">基本信息<span style="color: #d9001b;margin-left: auto">请务必仔细核对企业基本信息</span></div>
  27. <a-row :gutter="[0, 16]">
  28. <a-col :span="8">
  29. <a-form-item label="统一社会信用代码:" name="companyCode">
  30. <a-input v-model:value="formData.companyCode" :disabled="true" placeholder="请输入统一社会信用代码"
  31. allow-clear/>
  32. </a-form-item>
  33. </a-col>
  34. <a-col :span="8">
  35. <a-form-item label="企业注册名称(全):" name="companyName">
  36. <a-input v-model:value="formData.companyName" :disabled="true" placeholder="请输入企业注册名称"
  37. allow-clear/>
  38. </a-form-item>
  39. </a-col>
  40. <a-col :span="8">
  41. <a-form-item label="法定代表人:" name="companyLegal">
  42. <a-input v-model:value="formData.companyLegal" :disabled="true" placeholder="请输入法定代表人"
  43. allow-clear/>
  44. </a-form-item>
  45. </a-col>
  46. <a-col :span="8">
  47. <a-form-item label="法定代表人联系电话:" name="companyLegalPhone">
  48. <a-input v-model:value="formData.companyLegalPhone" :disabled="true"
  49. placeholder="请输入法定代表人联系电话" allow-clear/>
  50. </a-form-item>
  51. </a-col>
  52. <a-col :span="8">
  53. <a-form-item label="联系人:" name="companyLinkMan">
  54. <a-input v-model:value="formData.companyLinkMan" :disabled="true" placeholder="请输入联系人" allow-clear/>
  55. </a-form-item>
  56. </a-col>
  57. <a-col :span="8">
  58. <a-form-item label="联系人电话:" name="companyLinkPhone">
  59. <a-input v-model:value="formData.companyLinkPhone" :disabled="true" placeholder="请输入联系人电话" allow-clear/>
  60. </a-form-item>
  61. </a-col>
  62. <a-col :span="8">
  63. <a-form-item label="企业类型:" name="companyType">
  64. <a-select v-model:value="formData.companyType" :disabled="true" placeholder="请选择企业类型"
  65. :options="companyTypeOptions" show-search allow-clear option-filter-prop="label"/>
  66. </a-form-item>
  67. </a-col>
  68. <a-col :span="8">
  69. <a-form-item label="注册资本:" name="companyRegisteredCapital">
  70. <a-input v-model:value="formData.companyRegisteredCapital" :disabled="true" placeholder="请输入注册资本"
  71. allow-clear/>
  72. </a-form-item>
  73. </a-col>
  74. <a-col :span="8">
  75. <a-form-item label="成立日期:" name="companyRegisterDate">
  76. <a-date-picker v-model:value="formData.companyRegisterDate" :disabled="true"
  77. value-format="YYYY-MM-DD HH:mm:ss" show-time placeholder="请选择成立日期" style="width: 100%"
  78. allow-clear/>
  79. </a-form-item>
  80. </a-col>
  81. <a-col :span="8">
  82. <a-form-item label="企业地址:" name="companyAddress">
  83. <a-input v-model:value="formData.companyAddress" :disabled="true" placeholder="请输入企业地址"
  84. allow-clear/>
  85. </a-form-item>
  86. </a-col>
  87. <a-col :span="8">
  88. <a-form-item label="营业期限:" name="companyDeadline">
  89. <a-input v-model:value="formData.companyDeadline" :disabled="true" placeholder="请输入营业期限"
  90. allow-clear/>
  91. </a-form-item>
  92. </a-col>
  93. <a-col :span="8">
  94. <a-form-item label="登记机关:" name="companyRegistration">
  95. <a-input v-model:value="formData.companyRegistration" :disabled="true" placeholder="请输入登记机关"
  96. allow-clear/>
  97. </a-form-item>
  98. </a-col>
  99. <a-col :span="8">
  100. <a-form-item label="申报企业编号:" name="companyApplyCode">
  101. <a-input v-model:value="formData.companyApplyCode" :disabled="true" placeholder="请输入申报企业编号"
  102. allow-clear/>
  103. </a-form-item>
  104. </a-col>
  105. <a-col :span="8">
  106. <a-form-item label="监管场所:" name="companySupervisionPlaceType">
  107. <a-select v-model:value="formData.companySupervisionPlaceType" :disabled="true"
  108. placeholder="请选择监管场所" :options="companySupervisionPlaceTypeOptions" show-search allow-clear
  109. option-filter-prop="label"/>
  110. </a-form-item>
  111. </a-col>
  112. <a-col :span="8">
  113. <a-form-item label="主管海关:" name="companyMainHgType">
  114. <a-select v-model:value="formData.companyMainHgType" :disabled="true" placeholder="请选择主管海关"
  115. :options="companyMainHgTypeOptions" show-search allow-clear option-filter-prop="label"/>
  116. </a-form-item>
  117. </a-col>
  118. <a-col :span="24">
  119. <a-form-item label="经营范围:" name="companyJyFw">
  120. <a-textarea v-model:value="formData.companyJyFw" :disabled="true" placeholder="请输入经营范围"
  121. :rows="4"/>
  122. </a-form-item>
  123. </a-col>
  124. </a-row>
  125. <div class="__cus-title_1">申报信息</div>
  126. <a-row :gutter="[0, 16]">
  127. <a-col :span="8">
  128. <a-form-item label="申报类型:" name="baType">
  129. <a-select v-model:value="formData.baType" :disabled="true" placeholder="请选择备案类型"
  130. :options="baTypeOptions" show-search allow-clear option-filter-prop="label"/>
  131. </a-form-item>
  132. </a-col>
  133. <a-col :span="8">
  134. <a-form-item label="申报时间:" name="applyTime">
  135. <a-date-picker v-model:value="formData.applyTime" :disabled="true" value-format="YYYY-MM-DD HH:mm:ss"
  136. show-time placeholder="请选择申报时间" style="width: 100%" allow-clear/>
  137. </a-form-item>
  138. </a-col>
  139. <a-col :span="8">
  140. <a-form-item label="申报人:" name="applyMan">
  141. <a-input v-model:value="formData.applyMan" :disabled="true" placeholder="请输入申报人" allow-clear/>
  142. </a-form-item>
  143. </a-col>
  144. <a-col :span="8">
  145. <a-form-item label="享惠类型:" name="applyXhType">
  146. <a-select v-model:value="formData.applyXhType" :disabled="isView" placeholder="请选择享惠类型"
  147. :options="applyXhTypeOptions" show-search allow-clear option-filter-prop="label"/>
  148. </a-form-item>
  149. </a-col>
  150. <a-col :span="16">
  151. <a-form-item label="上传附件:" name="applyUrl">
  152. <xn-upload v-model:value="formData.applyUrl" :disabled="isView"/>
  153. </a-form-item>
  154. </a-col>
  155. <a-col :span="24">
  156. <a-form-item label="鼓励类产品目录:" name="applyCatalogue">
  157. <a-textarea v-model:value="formData.applyCatalogue" :disabled="isView" placeholder="请输入鼓励类产品目录"
  158. :rows="4"/>
  159. </a-form-item>
  160. </a-col>
  161. <a-col :span="24">
  162. <a-form-item label="备注内容:" name="applyRemark">
  163. <a-textarea v-model:value="formData.applyRemark" :disabled="isView" placeholder="请输入备注内容"
  164. :rows="4"/>
  165. </a-form-item>
  166. </a-col>
  167. </a-row>
  168. </a-form>
  169. </a-card>
  170. </template>
  171. <script setup name="qyRecordDetail">
  172. import tool from '@/utils/tool'
  173. import {cloneDeep} from 'lodash-es'
  174. import {required} from '@/utils/formRules'
  175. import qyRecordApi from '@/api/yqyc/qyRecordApi'
  176. const { proxy } = getCurrentInstance()
  177. // 抽屉状态
  178. const emit = defineEmits({successful: null})
  179. const formRef = ref()
  180. // 表单数据
  181. const formData = ref({})
  182. const submitLoading = ref(false)
  183. const isView = ref(false)
  184. const zzTypeOptions = ref([])
  185. const baTypeOptions = ref([])
  186. const companyTypeOptions = ref([])
  187. const companySupervisionPlaceTypeOptions = ref([])
  188. const companyMainHgTypeOptions = ref([])
  189. const applyTypeOptions = ref([])
  190. const applyXhTypeOptions = ref([])
  191. const statusOptions = ref([])
  192. const userInfo = tool.data.get('USER_INFO')
  193. // 打开抽屉
  194. const onOpen = (record, view = false) => {
  195. isView.value = view
  196. if (record) {
  197. let recordData = cloneDeep(record)
  198. formData.value = Object.assign({}, recordData)
  199. if (!isView.value) {
  200. formData.value.applyTime = proxy.$util.YMDHms(new Date())
  201. }
  202. } else {
  203. formData.value.applyTime = proxy.$util.YMDHms(new Date())
  204. formData.value.applyMan = userInfo.name
  205. formData.value.companyCode = userInfo.companyNumber
  206. formData.value.companyName = userInfo.companyName
  207. formData.value.companyLegal = userInfo.legalName
  208. formData.value.companyLegalPhone = userInfo.legalPhone
  209. formData.value.companyLinkMan = userInfo.contactName
  210. formData.value.companyLinkPhone = userInfo.contactPhone
  211. formData.value.companyType = userInfo.companyType
  212. formData.value.companyRegisteredCapital = userInfo.registeredCapital
  213. formData.value.companyRegisterDate = userInfo.establishmentData
  214. formData.value.companyAddress = userInfo.companyAddress
  215. formData.value.companyDeadline = userInfo.businessTerm
  216. formData.value.companyRegistration = userInfo.registrationAuthority
  217. formData.value.companyApplyCode = userInfo.sbqyNumber
  218. formData.value.companySupervisionPlaceType = userInfo.prisonManagement
  219. formData.value.companyMainHgType = userInfo.responsibleCustoms
  220. formData.value.companyJyFw = userInfo.businessScope
  221. formData.value.baType = 'basq'
  222. }
  223. zzTypeOptions.value = tool.dictList('applyzztype')
  224. baTypeOptions.value = tool.dictList('qybalx')
  225. companyTypeOptions.value = tool.dictList('qylx')
  226. companySupervisionPlaceTypeOptions.value = tool.dictList('jtcs')
  227. companyMainHgTypeOptions.value = tool.dictList('zhhg')
  228. applyTypeOptions.value = tool.dictList('shenbaoleixing')
  229. applyXhTypeOptions.value = tool.dictList('xhlx')
  230. statusOptions.value = tool.dictList('djzt')
  231. }
  232. // 关闭抽屉
  233. const onClose = () => {
  234. formRef.value.resetFields()
  235. formData.value = {}
  236. isView.value = true
  237. emit('onClose')
  238. }
  239. // 默认要校验的
  240. const formRules = {
  241. zzType: [required('请选择资质类型')],
  242. baType: [required('请选择备案类型')],
  243. companyCode: [required('请输入统一社会信用代码')],
  244. companyName: [required('请输入企业注册名称')],
  245. companyLegal: [required('请输入法定代表人')],
  246. companyLegalPhone: [required('请输入法定代表人联系电话')],
  247. companyLinkMan: [required('请输入联系人')],
  248. companyType: [required('请选择企业类型')],
  249. companyRegisteredCapital: [required('请输入注册资本')],
  250. companyRegisterDate: [required('请输入成立日期')],
  251. companyAddress: [required('请输入企业地址')],
  252. companyDeadline: [required('请输入营业期限')],
  253. companyRegistration: [required('请选择登记机关')],
  254. companySupervisionPlaceType: [required('请选择监管场所')],
  255. companyMainHgType: [required('请选择主管海关')],
  256. companyJyFw: [required('请输入经营范围')],
  257. applyType: [required('请选择申报类型')],
  258. }
  259. // 验证并提交数据
  260. const onSubmit = () => {
  261. formRef.value
  262. .validate()
  263. .then(() => {
  264. submitLoading.value = true
  265. const formDataParam = cloneDeep(formData.value)
  266. formDataParam.status = '2'
  267. qyRecordApi
  268. .qyRecordSubmitForm(formDataParam, formDataParam.id)
  269. .then(() => {
  270. onClose()
  271. emit('successful')
  272. })
  273. .finally(() => {
  274. submitLoading.value = false
  275. })
  276. })
  277. .catch(() => {
  278. })
  279. }
  280. // 验证并提交数据
  281. const onTemp = () => {
  282. formRef.value
  283. .validate()
  284. .then(() => {
  285. submitLoading.value = true
  286. const formDataParam = cloneDeep(formData.value)
  287. formDataParam.status = '1'
  288. qyRecordApi
  289. .qyRecordSubmitForm(formDataParam, formDataParam.id)
  290. .then(() => {
  291. onClose()
  292. emit('successful')
  293. })
  294. .finally(() => {
  295. submitLoading.value = false
  296. })
  297. })
  298. .catch(() => {
  299. })
  300. }
  301. // 抛出函数
  302. defineExpose({
  303. onOpen
  304. })
  305. </script>
  306. <style lang="less" scoped>
  307. </style>