third-print-sku-add-or-update.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <template>
  2. <el-dialog
  3. :title="!dataForm.templateId ? this.$i18n.t('crud.addTitle') : this.$i18n.t('temp.modify')"
  4. :close-on-click-modal="false"
  5. :visible.sync="visible">
  6. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
  7. <el-form-item label="三方skuID" prop="thirdSkuId">
  8. <el-input v-model="dataForm.thirdSkuId" style="width: 185px"/>
  9. </el-form-item>
  10. <el-form-item label="三方sku名称" prop="thirdSkuName">
  11. <el-input v-model="dataForm.thirdSkuName" style="width: 185px"/>
  12. </el-form-item>
  13. <!-- 产品类型 -->
  14. <el-form-item label="产品类型" prop="prodType">
  15. <el-select v-model="dataForm.prodType" clearable filterable >
  16. <el-option key="smallcard" label="小卡" value="smallcard"></el-option>
  17. <el-option key="squarecard" label="方卡" value="squarecard"></el-option>
  18. <el-option key="badge" label="马口铁徽章" value="badge"></el-option>
  19. <el-option key="plushbadge" label="毛绒徽章" value="plushbadge"></el-option>
  20. <el-option key="postcard" label="明信片" value="postcard"></el-option>
  21. <el-option key="bookmark" label="书签" value="bookmark"></el-option>
  22. <el-option key="tipscard" label="迷你手幅" value="tipscard"></el-option>
  23. <el-option key="polaroid" label="花式拍立得" value="polaroid"></el-option>
  24. <el-option key="covercard" label="直拍封面" value="covercard"></el-option>
  25. <el-option key="stub" label="票根" value="stub"></el-option>
  26. <el-option key="transformcard" label="变换卡" value="transformcard"></el-option>
  27. <el-option key="transpolaroid" label="透明胶片拍立得" value="transpolaroid"></el-option>
  28. <el-option key="rectanglesticker" label="长形贴纸" value="rectanglesticker"></el-option>
  29. <el-option key="squaresticker" label="方形贴纸" value="squaresticker"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="关联产品" prop="prodId">
  33. <el-select v-model="dataForm.prodId" clearable filterable @change="prodChange">
  34. <el-option v-for="(item, index) in prodList"
  35. :key="index"
  36. :label="item.prodName"
  37. :value="item.prodId">
  38. </el-option>
  39. </el-select>
  40. </el-form-item>
  41. <el-form-item label="产品SKU" prop="skuId">
  42. <el-select v-model="dataForm.skuId" clearable filterable>
  43. <el-option v-for="(item, index) in skuList"
  44. :key="index"
  45. :label="item.skuName"
  46. :value="item.skuId">
  47. </el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item label="三方产品类型编号" prop="prodTypeNo">
  51. <el-input v-model="dataForm.prodTypeNo" style="width: 185px"/>
  52. </el-form-item>
  53. <el-form-item label="三方SKU编号" prop="skuNo">
  54. <el-input v-model="dataForm.skuNo" style="width: 185px"/>
  55. </el-form-item>
  56. <el-form-item label="产品角型" prop="prodAngle">
  57. <el-select v-model="dataForm.prodAngle" clearable filterable>
  58. <el-option key="1" lable="圆角" value="圆角"/>
  59. <el-option key="2" lable="直角" value="直角"/>
  60. </el-select>
  61. </el-form-item>
  62. </el-form>
  63. <span slot="footer" class="dialog-footer">
  64. <el-button class="default-btn" @click="visible = false">{{$t("crud.filter.cancelBtn")}}</el-button>
  65. <el-button class="default-btn primary-btn" type="primary" @click="dataFormSubmit()">{{$t("crud.filter.submitBtn")}}</el-button>
  66. </span>
  67. </el-dialog>
  68. </template>
  69. <script>
  70. export default {
  71. data () {
  72. return {
  73. visible: false,
  74. dataForm: {
  75. id: null,
  76. prodId: null,
  77. prodType: null,
  78. thirdSkuName: null,
  79. skuId: null,
  80. thirdSkuId: null,
  81. prodTypeNo: null,
  82. prodAngle: null,
  83. skuNo: null,
  84. prodName: null,
  85. },
  86. prodList: [],
  87. skuList: [],
  88. dataRule: {
  89. }
  90. }
  91. },
  92. created(){
  93. this.getProdList();
  94. },
  95. methods: {
  96. init (id) {
  97. this.dataForm.id = id || 0
  98. this.visible = true
  99. this.$nextTick(() => {
  100. this.$refs['dataForm'].resetFields()
  101. if (this.dataForm.id) {
  102. this.$http({
  103. url: this.$http.adornUrl('/prod/thirdPrintSku/info/' + this.dataForm.id),
  104. method: 'get',
  105. params: this.$http.adornParams()
  106. }).then(({data}) => {
  107. this.dataForm = data
  108. })
  109. }
  110. })
  111. },
  112. prodChange(prodId){
  113. this.prodList.map(item =>{
  114. if(item.prodId === prodId){
  115. this.dataForm.prodName = item.prodName;
  116. }
  117. });
  118. this.getSkuList()
  119. },
  120. getSkuList(){
  121. this.$http({
  122. url: this.$http.adornUrl('/sku/getEnableSkuList'),
  123. method: 'GET',
  124. params: this.$http.adornParams({prodId:this.dataForm.prodId})
  125. }).then(({data}) => {
  126. this.skuList = data
  127. })
  128. },
  129. getProdList(){
  130. this.$http({
  131. url: this.$http.adornUrl('/prod/prod/simpleList'),
  132. method: 'GET',
  133. params: this.$http.adornParams({customized:0})
  134. }).then(({data}) => {
  135. this.prodList = data
  136. })
  137. },
  138. // 表单提交
  139. dataFormSubmit () {
  140. this.$refs['dataForm'].validate((valid) => {
  141. if (valid) {
  142. this.$http({
  143. url: this.$http.adornUrl('/prod/thirdPrintSku'),
  144. method: this.dataForm.id ? 'put' : 'post',
  145. data: this.$http.adornData(this.dataForm)
  146. }).then(({data}) => {
  147. this.$message({
  148. message: this.$i18n.t('publics.operation'),
  149. type: 'success',
  150. duration: 200,
  151. onClose: () => {
  152. this.visible = false
  153. this.$emit('refreshDataList')
  154. }
  155. })
  156. })
  157. }
  158. })
  159. }
  160. }
  161. }
  162. </script>