index.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. <template>
  2. <div class="wrapper">
  3. <div class="left">
  4. <div class="title">资质申请</div>
  5. <div class="status">
  6. <div class="line">
  7. <div class="label">申请状态:</div><span :class="status==9?'statustext':''">{{statusName}}</span>
  8. </div>
  9. <div class="line" v-if="status==9">
  10. <div class="label">原因:</div><span class="reason">{{reject_reason}}</span>
  11. </div>
  12. </div>
  13. <el-divider></el-divider>
  14. <el-form size="small" class="form" ref="form" :model="form" label-width="140px" :rules="rules">
  15. <el-form-item label="认证审核类型:" prop="brand_audit_type">
  16. <el-select v-model="form.brand_audit_type" placeholder="请选择" :disabled="isdisable" clearable
  17. filterable>
  18. <el-option label="国内品牌申请-R标" value="1"></el-option>
  19. <el-option label="国内品牌申请-TM标" value="2"></el-option>
  20. <el-option label="海外品牌申请-R标" value="3"></el-option>
  21. <el-option label="海外品牌申请-TM标" value="4"></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="商标分类:" label-width="100px" prop="trademark_type">
  25. <el-input placeholder="请输入" v-model="form.trademark_type" :disabled="isdisable" maxlength="25">
  26. </el-input>
  27. </el-form-item>
  28. <el-form-item label="选择品牌经营类型:" prop="brand_management_type">
  29. <el-select v-model="form.brand_management_type" placeholder="请选择" :disabled="isdisable" clearable
  30. filterable>
  31. <el-option label="自有品牌" value="1"></el-option>
  32. <el-option label="代理品牌" value="2"></el-option>
  33. <el-option label="无品牌" value="3"></el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item label="商品产地是否进口:" label-width="140px" prop="commodity_origin_type">
  37. <el-select v-model="form.commodity_origin_type" placeholder="请选择" :disabled="isdisable" clearable
  38. filterable>
  39. <el-option label="是" value="1"></el-option>
  40. <el-option label="否" value="2"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="商标/品牌词:" prop="brand_wording">
  44. <el-input placeholder="请输入" v-model="form.brand_wording" :disabled="isdisable"
  45. maxlength="25">
  46. </el-input>
  47. </el-form-item>
  48. <el-form-item label="商标注册人姓名:" label-width="140px">
  49. <el-input placeholder="请输入" :disabled="isdisable" v-model="form.trademark_registrant" maxlength="25">
  50. </el-input>
  51. </el-form-item>
  52. <el-form-item label="商标注册号/申请号:" prop="trademark_registrant_nu">
  53. <el-input placeholder="请输入" v-model="form.trademark_registrant_nu" :disabled="isdisable"
  54. maxlength="25">
  55. </el-input>
  56. </el-form-item>
  57. <el-form-item label="商标有效期:">
  58. <el-date-picker v-model="form.trademark_authorization_period" type="date" :disabled="isdisable"
  59. placeholder="选择日期">
  60. </el-date-picker>
  61. </el-form-item>
  62. <el-form-item label="商标申请人姓名:">
  63. <el-input placeholder="请输入" v-model="form.trademark_applicant" :disabled="isdisable" maxlength="25">
  64. </el-input>
  65. </el-form-item>
  66. <el-form-item label="商标申请时间:">
  67. <el-date-picker v-model="form.trademark_application_time" type="date" :disabled="isdisable"
  68. placeholder="选择日期">
  69. </el-date-picker>
  70. </el-form-item>
  71. <el-form-item class="single" label="营业执照或组织机构代码证:">
  72. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="org_code_certificateList" :disabled="isdisable" limitNum="10">
  73. </upload>
  74. </el-form-item>
  75. <el-form-item class="single" label="销售授权书(如商持人为自然人,还需提供:">
  76. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="authorizationList" :disabled="isdisable" limitNum="10"></upload>
  77. </el-form-item>
  78. <el-form-item class="single" label="商标注册证书:">
  79. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="registration_certificateList" :disabled="isdisable" limitNum="10">
  80. </upload>
  81. </el-form-item>
  82. <el-form-item class="single" label="商标变更证明:">
  83. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="change_certificateList" :disabled="isdisable" limitNum="10">
  84. </upload>
  85. </el-form-item>
  86. <el-form-item class="single" label="商标注册申请受理通知书:">
  87. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="registration_applicationList" :disabled="isdisable" limitNum="10">
  88. </upload>
  89. </el-form-item>
  90. <el-form-item class="single" label="中华人民共和国海关进口货物报关单:">
  91. <upload v-if="updatePic" acceptType='.jpg, .jpeg, .png' :file="goods_formList" limitNum="10" :disabled="isdisable"></upload>
  92. </el-form-item>
  93. <el-form-item class="single" label="备注:">
  94. <el-input placeholder="请输入" :disabled="isdisable" v-model="form.remark" maxlength="25">
  95. </el-input>
  96. </el-form-item>
  97. <el-form-item class="commit" v-if="status!=0&&status!=1">
  98. <el-button class="blackbtn" :loading="loading" @click.native.prevent="commit">提交
  99. </el-button>
  100. </el-form-item>
  101. </el-form>
  102. </div>
  103. <div class="table">
  104. <div class="title">资质申请</div>
  105. <showtable class="showtable"></showtable>
  106. </div>
  107. </div>
  108. </template>
  109. <script>
  110. import store from '@/store/index'
  111. import upload from '@/components/upload'
  112. import showtable from '../components/showtable.vue'
  113. import {
  114. edit,
  115. detail
  116. } from '@/api/brand'
  117. export default {
  118. name: 'brandDetail',
  119. components: {
  120. upload,
  121. showtable
  122. },
  123. props: {},
  124. data() {
  125. return {
  126. isdisable: false,
  127. categoryList: [],
  128. brandList: [],
  129. org_code_certificateList: [],
  130. authorizationList: [],
  131. registration_certificateList: [],
  132. change_certificateList: [],
  133. registration_applicationList: [],
  134. goods_formList: [],
  135. brand_info_id: 0,
  136. updatePic: true,
  137. form: {
  138. brand_audit_type: '',
  139. trademark_type: '',
  140. brand_management_type: '',
  141. commodity_origin_type: '',
  142. trademark_registrant: '',
  143. trademark_registrant_nu: '',
  144. trademark_authorization_period: '',
  145. trademark_applicant: '',
  146. trademark_application_time: '',
  147. remark: '',
  148. brand_wording:''
  149. },
  150. loading: false,
  151. rules: {
  152. brand_audit_type: [{
  153. required: true,
  154. message: '请输入必填项',
  155. trigger: 'blur'
  156. }],
  157. trademark_type: [{
  158. required: true,
  159. message: '请选择必填项',
  160. trigger: 'blur'
  161. }],
  162. brand_management_type: [{
  163. required: true,
  164. message: '请选择必填项',
  165. trigger: 'blur'
  166. }],
  167. commodity_origin_type: [{
  168. required: true,
  169. message: '请选择必填项',
  170. trigger: 'blur'
  171. }],
  172. trademark_registrant: [{
  173. required: true,
  174. message: '请选择必填项',
  175. trigger: 'blur'
  176. }],
  177. trademark_registrant_nu: [{
  178. required: true,
  179. message: '请输入必填项',
  180. trigger: 'blur'
  181. }],
  182. brand_wording: [{
  183. required: true,
  184. message: '请输入必填项',
  185. trigger: 'blur'
  186. }],
  187. },
  188. };
  189. },
  190. watch: {},
  191. computed: {},
  192. methods: {
  193. commit() {
  194. this.$refs.form.validate(valid => {
  195. if (valid) {
  196. if (this.org_code_certificateList.length == 0) {
  197. this.$message.error('请选择营业执照或组织机构代码证');
  198. return
  199. }
  200. let imgDtoList = []
  201. this.org_code_certificateList.forEach(element => {
  202. imgDtoList.push({
  203. type: "org_code_certificate",
  204. url: element.url
  205. })
  206. });
  207. this.authorizationList.forEach(element => {
  208. imgDtoList.push({
  209. type: "authorization",
  210. url: element.url
  211. })
  212. });
  213. this.registration_certificateList.forEach(element => {
  214. imgDtoList.push({
  215. type: "registration_certificate",
  216. url: element.url
  217. })
  218. });
  219. this.change_certificateList.forEach(element => {
  220. imgDtoList.push({
  221. type: "change_certificate",
  222. url: element.url
  223. })
  224. });
  225. this.registration_applicationList.forEach(element => {
  226. imgDtoList.push({
  227. type: "registration_application",
  228. url: element.url
  229. })
  230. });
  231. this.goods_formList.forEach(element => {
  232. imgDtoList.push({
  233. type: "goods_form",
  234. url: element.url
  235. })
  236. });
  237. let params = {
  238. brand_audit_type: this.form.brand_audit_type,
  239. brand_management_type: this.form.brand_management_type,
  240. commodity_origin_type: this.form.commodity_origin_type,
  241. imgDtoList: imgDtoList,
  242. remark: this.form.remark,
  243. trademark_applicant: this.form.trademark_applicant,
  244. trademark_application_time: this.form.trademark_application_time,
  245. trademark_authorization_period: this.form.trademark_authorization_period,
  246. trademark_registrant: this.form.trademark_registrant,
  247. trademark_registrant_nu: this.form.trademark_registrant_nu,
  248. trademark_type: this.form.trademark_type,
  249. brand_wording:this.form.brand_wording
  250. }
  251. this.loading = true
  252. edit(params).then(() => {
  253. this.$message.success('申请成功');
  254. store.commit('REMOVETAB', '品牌申请')
  255. this.$router.go(-1)
  256. }).catch(() => {
  257. this.loading = false
  258. });
  259. }
  260. })
  261. },
  262. getDetail() {
  263. this.isdisable = false
  264. detail({
  265. brandInfoId: this.brand_info_id
  266. }).then(res => {
  267. this.status = res.data.status
  268. if (this.status == 0 || this.status == 1) { //审核中 通过全不可编辑
  269. this.isdisable = true
  270. }
  271. this.reject_reason = res.data.reject_reason
  272. this.statusName = res.data.statusName
  273. this.form.brand_audit_type = res.data.brand_audit_type
  274. this.form.brand_management_type = res.data.brand_management_type
  275. this.form.commodity_origin_type = res.data.commodity_origin_type
  276. this.form.remark = res.data.remark
  277. this.form.trademark_applicant = res.data.trademark_applicant
  278. this.form.trademark_application_time = res.data.trademark_application_time
  279. this.form.trademark_authorization_period = res.data.trademark_authorization_period
  280. this.form.trademark_registrant = res.data.trademark_registrant
  281. this.form.trademark_registrant_nu = res.data.trademark_registrant_nu
  282. this.form.trademark_type = res.data.trademark_type
  283. this.org_code_certificateList = res.data.imgMap.org_code_certificate
  284. this.form.brand_wording=res.data.brand_wording
  285. this.authorizationList = res.data.imgMap.authorization
  286. this.registration_certificateList = res.data.imgMap.registration_certificate
  287. this.change_certificateList = res.data.imgMap.change_certificate
  288. this.registration_applicationList = res.data.imgMap.registration_application
  289. this.goods_formList = res.data.imgMap.goods_form
  290. //刷新子组件
  291. this.updatePic = false
  292. this.$nextTick(() => {
  293. this.updatePic = true
  294. })
  295. })
  296. },
  297. initPage() {
  298. this.loading = false
  299. this.$refs.form.clearValidate()
  300. if (this.$route.params.brand_info_id) {
  301. this.brand_info_id = this.$route.params.brand_info_id
  302. this.getDetail()
  303. }
  304. },
  305. },
  306. created() {},
  307. activated() {
  308. this.initPage()
  309. },
  310. mounted() {}
  311. };
  312. </script>
  313. <style lang="less" scoped>
  314. .wrapper {
  315. display: flex;
  316. flex-direction: row;
  317. background: #F6F8F9 !important;
  318. padding: 0px !important;
  319. .table {
  320. display: flex;
  321. flex-direction: column;
  322. align-items: center;
  323. background: white !important;
  324. border-radius: 5px;
  325. width: 37%;
  326. margin-left: 10px;
  327. .title {
  328. font-weight: bold;
  329. width: 90%;
  330. text-align: left;
  331. margin-left: 10px;
  332. margin-top: 20px;
  333. }
  334. .showtable {
  335. width: 99%;
  336. margin-top: 20px;
  337. }
  338. }
  339. .left {
  340. display: flex;
  341. flex-direction: column;
  342. align-items: center;
  343. background: white;
  344. border-radius: 5px;
  345. padding: 10px;
  346. width: 61%;
  347. .status {
  348. width: 100%;
  349. display: flex;
  350. margin-top: 20px;
  351. flex-direction: column;
  352. font-size: 14px;
  353. color: #232323;
  354. font-weight: bolder;
  355. font-family: PingFangSC-Regular, PingFang SC;
  356. .line {
  357. display: flex;
  358. margin-top: 20px;
  359. align-items: center;
  360. }
  361. .commitnew {
  362. margin-left: 40px;
  363. }
  364. .label {
  365. width: 100px;
  366. text-align: right;
  367. margin-right: 30px;
  368. }
  369. .reason {
  370. width: 80%;
  371. }
  372. .statustext {
  373. color: #E02020;
  374. }
  375. }
  376. .title {
  377. font-weight: bold;
  378. width: 90%;
  379. text-align: left;
  380. margin-left: 10px;
  381. margin-top: 10px;
  382. }
  383. .form {
  384. margin-top: 20px;
  385. width: 100%;
  386. display: flex;
  387. justify-content: space-between;
  388. flex-wrap: wrap;
  389. .el-form-item {
  390. color: #232323;
  391. font-weight: bold;
  392. }
  393. .el-select {
  394. width: 200px;
  395. }
  396. .el-input {
  397. width: 200px;
  398. }
  399. .single {
  400. width: 100%;
  401. .el-input {
  402. width: 575px;
  403. }
  404. .el-select {
  405. width: 575px;
  406. }
  407. }
  408. .commit {
  409. width: 100%;
  410. text-align: center;
  411. }
  412. }
  413. }
  414. }
  415. </style>