index.php 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-list-page');
  4. ComponentHelper::loadComponentView('com-list-table');
  5. ComponentHelper::loadComponentView('com-user-info');
  6. $diyPath = dirname(__DIR__) . '/components';
  7. ComponentHelper::loadComponentView('price-difference-gift-package-edit', $diyPath);
  8. ?>
  9. <com-list-page :crumbs="crumbs" id="application">
  10. <com-list-table
  11. ref="table"
  12. :api="'cloud-stock/price-difference-gift-package/index'"
  13. @selection-change="handleSelectionChange"
  14. :search-list="searchList"
  15. @search="handleSearch"
  16. >
  17. <el-table-column align="center" prop="name" label="礼包名称"></el-table-column>
  18. <el-table-column align="center" prop="pic" label="礼包主图">
  19. <template slot-scope="scope">
  20. <com-image mode="aspectFill" :src="scope.row.pic"></com-image>
  21. </template>
  22. </el-table-column>
  23. <el-table-column align="center" min-width="400" label="价差礼包">
  24. <template slot-scope="scope">
  25. <el-table :data="scope.row.goods_list" border style="width: 100%">
  26. <el-table-column prop="id" label="商品id" align="center"></el-table-column>
  27. <el-table-column prop="name,cover_pic" label="商品信息">
  28. <template slot-scope="scope">
  29. <div flex="box:first">
  30. <div style="padding-right: 10px;">
  31. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  32. </div>
  33. <div flex="cross:top cross:center">
  34. {{scope.row.goods_name}}
  35. </div>
  36. </div>
  37. </template>
  38. </el-table-column>
  39. </el-table>
  40. </template>
  41. </el-table-column>
  42. <el-table-column align="center" prop="level_name" label="升级等级"></el-table-column>
  43. <el-table-column align="center" prop="price" label="礼包金额"></el-table-column>
  44. <el-table-column
  45. label="状态"
  46. width="120"
  47. align="center">
  48. <template slot-scope="scope">
  49. <el-switch :active-value="1" :inactive-value="0" @change="handle('status', scope.row)"
  50. v-model="scope.row.status">
  51. </el-switch>
  52. </template>
  53. </el-table-column>
  54. <el-table-column label="操作" width="180" align="center">
  55. <template slot-scope="scope">
  56. <el-button circle size="mini" type="text" @click="editClick(scope.row.id)">
  57. 编辑
  58. </el-button>
  59. <el-button circle size="mini" type="text" @click="del(scope.row, scope.$index)">
  60. 删除
  61. </el-button>
  62. </template>
  63. </el-table-column>
  64. <template slot="header-left">
  65. <el-button type="primary" size="mini" icon="el-icon-plus" @click="editClick(0)">添加
  66. </el-button>
  67. </template>
  68. </com-list-table>
  69. <price-difference-gift-package-edit v-model="edit.show" :edit_row="edit"
  70. @refresdatafun="getList"></price-difference-gift-package-edit>
  71. </com-list-page>
  72. <script>
  73. const application = new Vue({
  74. el: '#application',
  75. data: {
  76. crumbs: [
  77. {
  78. title: '赠送方案',
  79. router: '',
  80. }
  81. ],
  82. searchList: [
  83. {
  84. key: 'name',
  85. title: '请输入礼包名称',
  86. type: 'text',
  87. },
  88. ],
  89. btnLoad: false,
  90. apply_edit: false,
  91. id: 0,
  92. remark: '',
  93. check_remark: '',
  94. check_status: '1',
  95. edit: {
  96. show: false,
  97. id: 0,
  98. title: "添加赠送方案"
  99. },
  100. },
  101. mounted() {
  102. this.getLevelList();
  103. },
  104. methods: {
  105. getLevelList() {
  106. request({
  107. params: {
  108. r: 'cloud-stock/price-difference-gift-package/get-level-list',
  109. },
  110. method: 'get',
  111. }).then(e => {
  112. if (e.data.code == 0) {
  113. console.log(e.data.data);
  114. this.searchList.push({
  115. key: 'level',
  116. title: '请选择升级等级',
  117. type: 'select',
  118. options: e.data.data,
  119. valueKey: {
  120. label: 'label',
  121. value: 'value',
  122. },
  123. });
  124. } else {
  125. this.$message.error(e.data.msg);
  126. }
  127. }).catch(e => {
  128. });
  129. },
  130. editClick(id) {
  131. if (id) {
  132. this.edit.id = id;
  133. this.edit.show = true;
  134. this.edit.title = "编辑"
  135. } else {
  136. this.edit.id = 0;
  137. this.edit.show = true;
  138. this.edit.title = "添加"
  139. }
  140. },
  141. handleSelectionChange(val) {
  142. console.log(val);
  143. this.multipleSelection = val;
  144. },
  145. handleSearch(keyword) {
  146. },
  147. handle(type, data = null) {
  148. let id = data ? parseInt(data.id) : '';
  149. let status = data ? parseInt(data.status) : '';
  150. switch (type) {
  151. case 'status':
  152. let self = this;
  153. self.listLoading = true;
  154. request({
  155. params: {
  156. r: 'cloud-stock/price-difference-gift-package/switch-status',
  157. },
  158. method: 'post',
  159. data: {
  160. id: id,
  161. status: status,
  162. }
  163. }).then(e => {
  164. self.listLoading = false;
  165. if (e.data.code === 0) {
  166. self.$message.success(e.data.msg);
  167. } else {
  168. self.$message.error(e.data.msg);
  169. }
  170. self.getList();
  171. }).catch(e => {
  172. console.log(e);
  173. });
  174. break;
  175. default:
  176. break;
  177. }
  178. },
  179. del(row, index) {
  180. let self = this;
  181. self.$confirm('是否确认删除该礼包信息?', '提示', {
  182. confirmButtonText: '确定',
  183. cancelButtonText: '取消',
  184. type: 'warning'
  185. }).then(() => {
  186. self.listLoading = true;
  187. request({
  188. params: {
  189. r: 'cloud-stock/price-difference-gift-package/delete',
  190. },
  191. method: 'post',
  192. data: {
  193. id: row.id,
  194. }
  195. }).then(e => {
  196. self.listLoading = false;
  197. if (e.data.code === 0) {
  198. self.$message.success(e.data.msg);
  199. this.getList();
  200. } else {
  201. self.$message.error(e.data.msg);
  202. }
  203. }).catch(e => {
  204. console.log(e);
  205. });
  206. }).catch(() => {
  207. self.$message.info('已取消删除')
  208. });
  209. },
  210. getList() {
  211. this.$refs.table.handleSearch();
  212. },
  213. batchActivation(status) {
  214. if (!this.multipleSelection || this.multipleSelection.length == 0) {
  215. this.$message.error('请选择要操作的数据');
  216. return;
  217. }
  218. var ids = [];
  219. for (var i = 0; i < this.multipleSelection.length; i++) {
  220. ids.push(this.multipleSelection[i].id);
  221. }
  222. let self = this;
  223. self.$confirm('选中的数据,是否批量启用?', '提示', {
  224. confirmButtonText: '确定',
  225. cancelButtonText: '取消',
  226. type: 'warning'
  227. }).then(() => {
  228. self.listLoading = true;
  229. request({
  230. params: {
  231. r: 'cloud-stock/price-difference-gift-package/switch-status',
  232. },
  233. method: 'post',
  234. data: {
  235. id: ids,
  236. status: status,
  237. }
  238. }).then(e => {
  239. self.listLoading = false;
  240. if (e.data.code === 0) {
  241. self.$message.success(e.data.msg);
  242. this.getList();
  243. } else {
  244. self.$message.error(e.data.msg);
  245. }
  246. }).catch(e => {
  247. console.log(e);
  248. });
  249. }).catch(() => {
  250. self.$message.info('已取消删除')
  251. });
  252. },
  253. }
  254. })
  255. </script>