third-print-sku.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <template>
  2. <div class="mod-print-printPicLib">
  3. <!-- 搜索相关区域 -->
  4. <div class="search-bar">
  5. <el-form :inline="true" class="search-form" ref="searchForm" :model="searchForm" label-width="auto" size="small">
  6. <div class="input-row">
  7. <el-form-item prop="prodType" label="产品类型" class="search-form-item">
  8. <el-select v-model="searchForm.prodType" clearable filterable >
  9. <el-option key="smallcard" label="小卡" value="smallcard"></el-option>
  10. <el-option key="squarecard" label="方卡" value="squarecard"></el-option>
  11. <el-option key="badge" label="马口铁徽章" value="badge"></el-option>
  12. <el-option key="plushbadge" label="毛绒徽章" value="plushbadge"></el-option>
  13. <el-option key="postcard" label="明信片" value="postcard"></el-option>
  14. <el-option key="bookmark" label="书签" value="bookmark"></el-option>
  15. <el-option key="tipscard" label="迷你手幅" value="tipscard"></el-option>
  16. <el-option key="polaroid" label="花式拍立得" value="polaroid"></el-option>
  17. <el-option key="covercard" label="直拍封面" value="covercard"></el-option>
  18. <el-option key="stub" label="票根" value="stub"></el-option>
  19. <el-option key="transformcard" label="变换卡" value="transformcard"></el-option>
  20. <el-option key="transpolaroid" label="透明胶片拍立得" value="transpolaroid"></el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item prop="prodAngle" label="产品角型" class="search-form-item">
  24. <el-select v-model="searchForm.prodAngle" clearable filterable >
  25. <el-option key="1" label="圆角" value="圆角"></el-option>
  26. <el-option key="2" label="直角" value="直角"></el-option>
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item prop="prodId" label="产品名称" class="search-form-item">
  30. <el-select v-model="searchForm.prodId" clearable filterable >
  31. <el-option v-for="(item, index) in prodList"
  32. :key="index" :label="item.prodName" :value="item.prodId"></el-option>
  33. </el-select>
  34. </el-form-item>
  35. <div class="default-btn primary-btn" @click="searchChange">{{$t('crud.searchBtn')}}</div>
  36. <div class="default-btn" @click="resetSearchForm('searchForm')">{{$t('shop.resetMap')}}</div>
  37. </div>
  38. </el-form>
  39. </div>
  40. <!-- 列表相关区域 -->
  41. <div class="main-container">
  42. <div class="operation-bar">
  43. <div class="default-btn primary-btn" @click="addOrUpdateHandle()">{{$t("crud.addTitle")}}</div>
  44. </div>
  45. <div class="table-con spec-table">
  46. <el-table
  47. ref="specListTable"
  48. :data="dataList"
  49. header-cell-class-name="table-header"
  50. row-class-name="table-row"
  51. style="width: 100%">
  52. <!-- 正面图 -->
  53. <el-table-column label="三方skuId" prop="thirdSkuId" align="center">
  54. <template slot-scope="scope">
  55. <span>{{scope.row.thirdSkuId}}</span>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="三方SKU名称" prop="thirdSkuName" align="center">
  59. <template slot-scope="scope">
  60. <span>{{scope.row.thirdSkuName}}</span>
  61. </template>
  62. </el-table-column>
  63. <el-table-column label="三方SKU编号" prop="skuNo" align="center">
  64. <template slot-scope="scope">
  65. <span>{{scope.row.skuNo}}</span>
  66. </template>
  67. </el-table-column>
  68. <!-- 背面图 -->
  69. <el-table-column label="产品类型" prop="prodType" align="center">
  70. <template slot-scope="scope">
  71. <span v-if="scope.row.prodType === 'smallcard'">小卡</span>
  72. <span v-if="scope.row.prodType === 'squarecard'">方卡</span>
  73. <span v-if="scope.row.prodType === 'badge'">马口铁徽章</span>
  74. <span v-if="scope.row.prodType === 'plushbadge'">毛绒徽章</span>
  75. <span v-if="scope.row.prodType === 'postcard'">明信片</span>
  76. <span v-if="scope.row.prodType === 'bookmark'">书签</span>
  77. <span v-if="scope.row.prodType === 'tipscard'">迷你手幅</span>
  78. <span v-if="scope.row.prodType === 'polaroid'">仿拍立得</span>
  79. <span v-if="scope.row.prodType === 'covercard'">直拍封面</span>
  80. <span v-if="scope.row.prodType === 'stub'">票根</span>
  81. <span v-if="scope.row.prodType === 'transformcard'">变换卡</span>
  82. <span v-if="scope.row.prodType === 'transpolaroid'">透明胶片拍立得</span>
  83. </template>
  84. </el-table-column>
  85. <el-table-column label="产品类型名称" prop="prodName" align="center">
  86. <template slot-scope="scope">
  87. <span>{{scope.row.prodName}}</span>
  88. </template>
  89. </el-table-column>
  90. <el-table-column label="产品角型" prop="prodAngle" align="center">
  91. <template slot-scope="scope">
  92. <span>{{scope.row.prodAngle}}</span>
  93. </template>
  94. </el-table-column>
  95. <!--&lt;!&ndash; 关联的产品ID &ndash;&gt;
  96. <el-table-column label="关联产品" prop="prodId" align="center">
  97. <template slot-scope="scope">
  98. <span>{{ scope.row.prodId}}</span>
  99. </template>
  100. </el-table-column>-->
  101. <!-- 产品名称 -->
  102. <el-table-column label="关联产品" prop="prodName" align="center">
  103. <template slot-scope="scope">
  104. <span>{{ scope.row.prodName}}</span>
  105. </template>
  106. </el-table-column>
  107. <el-table-column align="center" fixed="right" :label="$t('publics.operating')" width="auto">
  108. <template slot-scope="scope">
  109. <div class="text-btn-con">
  110. <div class="default-btn text-btn" @click="addOrUpdateHandle(scope.row.id)">{{$t("crud.updateBtn")}}</div>
  111. <div class="default-btn text-btn" @click.stop="deleteHandle(scope.row.id)">{{$t("text.delBtn")}}</div>
  112. </div>
  113. </template>
  114. </el-table-column>
  115. </el-table>
  116. </div>
  117. <el-pagination
  118. v-if="dataList.length"
  119. @size-change="handleSizeChange"
  120. @current-change="handleCurrentChange"
  121. :current-page="page.currentPage"
  122. :page-sizes="[10, 20, 50, 100]"
  123. :page-size="page.pageSize"
  124. layout="total, sizes, prev, pager, next, jumper"
  125. :total="page.total">
  126. </el-pagination>
  127. </div>
  128. <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="refreshChange"></add-or-update>
  129. <el-dialog :visible.sync="previewPicDialogVisible" :modal="false" title="图片预览" width="30%" top="3vh">
  130. <el-image :src="previewPicUrl" alt="" style="width: 100%; height: 100%"/>
  131. </el-dialog>
  132. </div>
  133. </template>
  134. <script>
  135. import AddOrUpdate from './third-print-sku-add-or-update'
  136. export default {
  137. data () {
  138. return {
  139. dataList: [],
  140. page: {
  141. total: 0, // 总页数
  142. currentPage: 1, // 当前页数
  143. pageSize: 10 // 每页显示多少条
  144. },
  145. prodList:[],
  146. previewPicUrl: null,
  147. previewPicDialogVisible: false,
  148. resourcesUrl: process.env.VUE_APP_RESOURCES_URL,
  149. searchForm: {
  150. prodType: null,
  151. prodId: null,
  152. prodAngle: null
  153. }, // 搜索
  154. dataListLoading: false,
  155. addOrUpdateVisible: false
  156. }
  157. },
  158. components: {
  159. AddOrUpdate
  160. },
  161. created () {
  162. this.getDataList();
  163. this.getProdList();
  164. },
  165. mounted () {
  166. },
  167. methods: {
  168. getProdList(){
  169. this.$http({
  170. url: this.$http.adornUrl('/prod/prod/simpleList'),
  171. method: 'GET',
  172. params: this.$http.adornParams({customized:0})
  173. }).then(({data}) => {
  174. this.prodList = data
  175. })
  176. },
  177. resetSearchForm (formName) {
  178. this.$refs[formName].resetFields()
  179. },
  180. getDataList (page) {
  181. this.dataListLoading = true
  182. this.$http({
  183. url: this.$http.adornUrl('/prod/thirdPrintSku/page'),
  184. method: 'get',
  185. params: this.$http.adornParams(
  186. Object.assign({
  187. current: page == null ? this.page.currentPage : page.currentPage,
  188. size: page == null ? this.page.pageSize : page.pageSize
  189. },
  190. this.searchForm
  191. )
  192. )
  193. }).then(({data}) => {
  194. this.dataList = data.records
  195. this.page.total = data.total
  196. this.dataListLoading = false
  197. })
  198. },
  199. // 新增 / 修改
  200. addOrUpdateHandle (id) {
  201. this.addOrUpdateVisible = true
  202. this.$nextTick(() => {
  203. this.$refs.addOrUpdate.init(id)
  204. })
  205. },
  206. deleteHandle (id) {
  207. this.$confirm(this.$i18n.t('admin.isDeleOper') + '?', this.$i18n.t('text.tips'), {
  208. confirmButtonText: this.$i18n.t('crud.filter.submitBtn'),
  209. cancelButtonText: this.$i18n.t('crud.filter.cancelBtn'),
  210. type: 'warning'
  211. }).then(() => {
  212. this.$http({
  213. url: this.$http.adornUrl('/print/printPicLib/' + id),
  214. method: 'delete',
  215. data: this.$http.adornData({})
  216. }).then(({ data }) => {
  217. this.$message({
  218. message: this.$i18n.t('publics.operation'),
  219. type: 'success',
  220. duration: 200,
  221. onClose: () => {
  222. this.refreshChange()
  223. }
  224. })
  225. })
  226. }).catch(() => { })
  227. },
  228. // 刷新回调
  229. refreshChange () {
  230. this.page.currentPage = 1
  231. this.getDataList(this.page)
  232. },
  233. searchChange (params) {
  234. this.getDataList(this.page)
  235. },
  236. handleSizeChange (val) {
  237. this.page.pageSize = val
  238. this.getDataList()
  239. },
  240. handleCurrentChange (val) {
  241. this.page.currentPage = val
  242. this.getDataList()
  243. }
  244. }
  245. }
  246. </script>
  247. <style lang="scss">
  248. .mod-print-printPicLib {
  249. }
  250. </style>