index.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.itemname"
  6. :editData="mainData"
  7. :mainAreaData="mainAreaData"
  8. turnPageId="20220923140602"
  9. idname="itemid"
  10. ownertable="plm_item"
  11. tags=""
  12. :tabs="['详细信息','营销分类','商品等级价格']"
  13. @pageChange="pageChange"
  14. @onEditSuccess="queryMainData($route.query.id)"
  15. >
  16. <div slot="tags">
  17. </div>
  18. <div slot="customOperation" >
  19. <Edit class="inline-16" :data="mainData" @onSuccess="queryMainData" v-if="tool.checkAuth($route.name,'update') && mainData.status == '新建'"/>
  20. <customBtn
  21. btnName="审核"
  22. message="确认审核当前商品吗?"
  23. idName="20220923153902"
  24. keyName="itemids"
  25. :id="[+$route.query.id]"
  26. :paramData="[{key:'status',value:1}]"
  27. @onSuccess="queryMainData($route.query.id)"
  28. class="inline-16"
  29. v-if="tool.checkAuth($route.name,'toExamine') && mainData.status == '新建'"
  30. />
  31. <customBtn
  32. btnName="反审"
  33. message="确认反审当前商品吗?"
  34. idName="20220923153902"
  35. keyName="itemids"
  36. :id="[+$route.query.id]"
  37. :paramData="[{key:'status',value:0}]"
  38. @onSuccess="queryMainData($route.query.id)"
  39. class="inline-16"
  40. v-if="tool.checkAuth($route.name,'toExamine') && mainData.status == '审核'"
  41. />
  42. <customBtn
  43. btnName="上架"
  44. message="确认上架当前商品吗?"
  45. idName="20220923154802"
  46. keyName="itemids"
  47. :id="[+$route.query.id]"
  48. :paramData="[{key:'isonsale',value:1}]"
  49. @onSuccess="queryMainData($route.query.id)"
  50. class="inline-16"
  51. v-if="tool.checkAuth($route.name,'isTop') && mainData.isonsale == 0 && mainData.status == '审核'"
  52. />
  53. <customBtn
  54. btnName="下架"
  55. message="确认下架当前商品吗?"
  56. idName="20220923154802"
  57. keyName="itemids"
  58. :id="[+$route.query.id]"
  59. :paramData="[{key:'isonsale',value:0}]"
  60. @onSuccess="queryMainData($route.query.id)"
  61. class="inline-16"
  62. v-if="tool.checkAuth($route.name,'isBottom') && mainData.isonsale == 1"
  63. />
  64. </div>
  65. <div slot="slot0" >
  66. <detail_data :basic="mainData"></detail_data>
  67. </div>
  68. <div slot="slot1">
  69. <saleClass ref="saleClass" :data="mainData">
  70. <template v-slot:addClass="scope">
  71. <addClass v-if="tool.checkAuth($route.name,'salerClass') && mainData.status === '新建'" :data="scope.data" @onSuccess="$refs.saleClass.listData();queryMainData($route.query.id)"/>
  72. </template>
  73. </saleClass>
  74. </div>
  75. <div slot="slot2">
  76. <productPrice ></productPrice>
  77. </div>
  78. </basicDetails>
  79. </div>
  80. </template>
  81. <script>
  82. import Edit from '../modules/edit'
  83. import detail_data from './modules/detailedData'
  84. import saleClass from '../modules/saleClass.vue'
  85. import productPrice from '../modules/productPrice'
  86. import addClass from '../modules/addClass'
  87. export default {
  88. name: "index",
  89. data() {
  90. return {
  91. mainData:{},
  92. mainAreaData:{}
  93. }
  94. },
  95. components:{detail_data,saleClass,productPrice,addClass,Edit},
  96. methods: {
  97. async queryMainData(id) {
  98. const res = await this.$api.requested({
  99. "id": 20220923155302,
  100. "content": {
  101. "itemid": id
  102. },
  103. })
  104. this.mainData = res.data
  105. this.changeDataStructure()
  106. console.log(this.mainData)
  107. },
  108. // 监听切换数据,上一页,下一页
  109. pageChange (id,rowindex) {
  110. this.$router.replace({path:'/productmagDetail',query:{id:id,rowindex:rowindex}})
  111. this.queryMainData(id)
  112. },
  113. changeDataStructure(){
  114. let that = this
  115. this.mainAreaData = [
  116. {
  117. label:'产品名称',
  118. value:this.mainData.itemname
  119. },
  120. {
  121. label:'产品编号',
  122. value:this.mainData.itemno
  123. },
  124. {
  125. label:'型号',
  126. value:this.mainData.model
  127. },
  128. {
  129. label:'规格',
  130. value:this.mainData.spec
  131. },
  132. {
  133. label:'状态',
  134. value:this.mainData.status,
  135. style:function () {
  136. let style = {}
  137. switch (that.mainData.status) {
  138. case '审核':
  139. style = {color:"#52C41A"}
  140. break;
  141. case '新建':
  142. style = {color:"#000000"}
  143. break;
  144. default:
  145. break;
  146. }
  147. return style
  148. }
  149. },
  150. {
  151. label:'计量单位',
  152. value:this.mainData.unitname
  153. },
  154. {
  155. label:'起订量',
  156. value:this.mainData.orderminqty
  157. },
  158. {
  159. label:'增量',
  160. value:this.mainData.orderaddqty
  161. },
  162. {
  163. label:'品号',
  164. value:this.mainData.erpitemno
  165. },
  166. {
  167. label:'品名',
  168. value:this.mainData.erpitemname
  169. },
  170. {
  171. label:'牌价',
  172. value:this.mainData.marketprice
  173. },
  174. {
  175. label:'领域',
  176. value:this.mainData.tradefield.map(item => item.tradefield).join(',')
  177. },
  178. /*{
  179. label:'上/下架',
  180. value:this.mainData.isonsale ? '上架' : '下架'
  181. },*/
  182. {
  183. label:'上/下架',
  184. value:this.mainData.isonsale ? '上架' : '下架',
  185. style:function () {
  186. let style = {}
  187. switch (that.mainData.isonsale) {
  188. case 1:
  189. style = {color:"#3874f6"}
  190. break;
  191. case 0:
  192. style = {color:"#333333"}
  193. break;
  194. default:
  195. break;
  196. }
  197. return style
  198. }
  199. },
  200. {
  201. label:'是否工具',
  202. value:this.mainData.istool ? '是' : '否'
  203. },
  204. ]
  205. },
  206. },
  207. mounted() {
  208. this.queryMainData(this.$route.query.id)
  209. }
  210. }
  211. </script>
  212. <style scoped>
  213. </style>