setting-credit.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-dialog-select');
  4. ?>
  5. <style>
  6. .item-box .label{
  7. margin-right:5px;
  8. width:100px;
  9. }
  10. .item-box{
  11. width:20%;
  12. margin-top:10px;
  13. }
  14. .el-form{
  15. display:flex;
  16. flex-wrap:wrap;
  17. }
  18. .item-box .search-btn{
  19. margin-left:5px;
  20. }
  21. .goods-images{
  22. width:50px;
  23. height:50px;
  24. border-radius:10px;
  25. }
  26. .credit-info{
  27. margin:8px 0;
  28. }
  29. .credit-info .goods_name{
  30. margin-left:5px;
  31. }
  32. .proport-box{
  33. width:100%;
  34. justify-content: center;
  35. }
  36. </style>
  37. <div id="app" v-cloak>
  38. <el-card shadow="never" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  39. <div slot="header">
  40. <div>
  41. <span>赊账设置</span>
  42. </div>
  43. </template>
  44. </div>
  45. <div class="table-body el-input--small">
  46. <el-form size="small" flex="dir:left cross:center" style="margin-bottom: 12px;">
  47. <div class="item-box" flex="dir:left cross:center" style="margin-right: 20px">
  48. <div class="label">赊账功能</div>
  49. <el-switch v-model="isOpenCredit" :active-value="1" :inactive-value="0" @change="changeCredit">
  50. </div>
  51. <div class="item-box" flex="dir:left cross:center" style="margin-right: 20px">
  52. <div class="label">商品名称</div>
  53. <el-input style="width: 250px" v-model="search.goods_name" placeholder="商品名称"></el-input>
  54. </div>
  55. <div class="item-box" flex="dir:left cross:center">
  56. <el-button type="primary" class="search-btn" style="padding: 12px 34px !important;" @click="searchs">搜索
  57. </el-button>
  58. </div>
  59. <div class="item-box" flex="dir:left cross:center" style="width:100%">
  60. <el-button type="primary" class="search-btn" style="padding: 12px 34px !important;" @click="proportionVisible = true">收银台赊账设置
  61. </el-button>
  62. <com-dialog-select url="store/client/credit/search-goods" :params="goodsListparams" :multiple="true" @selected="goodsSelect" title="商品选择">
  63. <div class="" slot="inputslot">
  64. <div class="item-box" flex="dir:left cross:center" style="margin-right: 20px;width:40%">
  65. <div class="label">赊账比例</div>
  66. <el-input style="width: 250px" v-model="goods_credit_rate" placeholder="请设置赊账比例"></el-input>
  67. </div>
  68. </div>
  69. <el-button type="primary" class="search-btn" style="padding: 12px 34px !important;" @click="selectAll">全部商品
  70. </el-button>
  71. </com-dialog-select>
  72. </div>
  73. </el-form>
  74. <el-table v-loading="listLoading" :data="creditStoreList" stripe style="width: 100%">
  75. <el-table-column prop="order_no" label="商品信息" align="center" width="230px">
  76. <template slot-scope="scope">
  77. <div class="credit-info" flex="cross:center" >
  78. <el-image class="goods-images" :src="scope.row.cover_pic" ></el-image>
  79. <div class="goods_name over1" >{{scope.row.goods_name}}</div>
  80. </div>
  81. </template>
  82. </el-table-column>
  83. <el-table-column prop="pay_money" label="商品价格" align="center">
  84. <template slot-scope="scope">
  85. <div>¥{{scope.row.price}}</div>
  86. </template>
  87. </el-table-column>
  88. <el-table-column label="赊账比例" align="center">
  89. <template slot-scope="scope">
  90. <span>{{scope.row.credit_rate}}%</span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column
  94. label="操作"
  95. width="300">
  96. <template slot-scope="scope">
  97. <el-button @click="toEdit(scope.row,)" type="text" size="small">编辑</el-button>
  98. <el-button @click="toDel(scope.row.id)" type="text" size="small">删除</el-button>
  99. </template>
  100. </el-table-column>
  101. </el-table>
  102. <div style="text-align: right;margin: 20px 0;">
  103. <el-pagination v-if="pagination" :page-size="pagination.pageSize"
  104. style="display: inline-block;float: right;" background @current-change="pageChange"
  105. layout="prev, pager, next" :total="pagination.total_count">
  106. </el-pagination>
  107. </div>
  108. </div>
  109. <!--收银台赊账设置-->
  110. <el-dialog title="比例设置" :visible.sync="proportionVisible" width="30%">
  111. <el-form size="small" label-width="100px" flex="dir:left cross:center" style="margin-bottom: 12px;">
  112. <el-form-item label="赊账比例">
  113. <el-input type="number" v-model="credit_rate" :min="0" placeholder="请输入允许赊账比例" style="width: 250px;">
  114. <template slot="append">%</template>
  115. </el-input>
  116. </el-form-item>
  117. <div class="item-box proport-box" flex="dir:left cross:center">
  118. <el-button type="primary" class="search-btn" style="padding: 12px 34px !important;" @click="postCashierCredit">保存
  119. </el-button>
  120. </div>
  121. </el-form>
  122. </el-dialog>
  123. <!-- 赊账商品 -->
  124. <el-dialog title="比例设置" :visible.sync="proportionVisible_goods" width="30%">
  125. <el-form size="small" label-width="100px" flex="dir:left cross:center" style="margin-bottom: 12px;">
  126. <el-form-item label="赊账比例">
  127. <el-input type="number" v-model="good_credit_rate" :min="0" placeholder="请输入允许赊账比例" style="width: 250px;">
  128. <template slot="append">%</template>
  129. </el-input>
  130. </el-form-item>
  131. <div class="item-box proport-box" flex="dir:left cross:center">
  132. <el-button type="primary" class="search-btn" style="padding: 12px 34px !important;" @click="postGoodCredit">保存
  133. </el-button>
  134. </div>
  135. </el-form>
  136. </el-dialog>
  137. </el-card>
  138. </div>
  139. <script>
  140. const app = new Vue({
  141. el: '#app',
  142. data: {
  143. search:{
  144. goods_name:'',
  145. },
  146. credit_rate:0,
  147. page:1,
  148. limit:20,
  149. creditList:[],
  150. listLoading: false,
  151. pagination:null,
  152. time:[],
  153. isOpenCredit:0,//是否开启赊账
  154. creditStoreList:[], //赊账商品列表
  155. proportionVisible: false,
  156. proportionVisible_goods: false,
  157. goods_credit_rate:0,
  158. good_credit_rate:0,
  159. goods_credit_list:[], //赊账商品列表
  160. goods_credit_id:[],
  161. goodsListparams:{
  162. goods_name:''
  163. },
  164. id:0
  165. },
  166. mounted() {
  167. this.getCreditConfig()
  168. },
  169. methods: {
  170. selectAll(){
  171. },
  172. toDetails(id,index){
  173. },
  174. toEdit(row){
  175. this.proportionVisible_goods= true;
  176. this.good_credit_rate = row.credit_rate;
  177. this.id = row.id;
  178. console.log(row);
  179. },
  180. goodsSelect(e){
  181. console.log('选中的商品',e,this.goods_credit_rate)
  182. this.goods_credit_list = e
  183. this.goods_credit_list.forEach((item,index) =>{
  184. this.goods_credit_id.push(item.id)
  185. })
  186. this.postGoodsCredit()
  187. },
  188. postGoodsCredit(){
  189. let self = this
  190. self.listLoading = true;
  191. request({
  192. method: 'post',
  193. params: {
  194. r: '/store/client/credit/goods-credit',
  195. },
  196. data: {goods_id: self.goods_credit_id,credit_rate:self.goods_credit_rate},
  197. }).then(e => {
  198. self.listLoading = false;
  199. if(e.data.code == 0){
  200. self.$message.success('收银台赊账比例设置成功')
  201. }else{
  202. self.$message.error(e.data.msg)
  203. }
  204. }).catch(e => {
  205. console.log(e);
  206. });
  207. },
  208. searchs(){
  209. this.page = 1;
  210. this.getCreditConfig();
  211. },
  212. toOrderDetail(order_no){
  213. this.$navigate({
  214. r: 'seed/index/change-log',
  215. order_no: order_no
  216. })
  217. },
  218. changeCredit(e){ //开启关闭赊账功能
  219. let self = this
  220. self.listLoading = true;
  221. request({
  222. method: 'post',
  223. params: {
  224. r: '/store/client/credit/open-credit',
  225. },
  226. data: {is_open_credit: self.isOpenCredit},
  227. }).then(e => {
  228. self.listLoading = false;
  229. }).catch(e => {
  230. console.log(e);
  231. });
  232. },
  233. getCreditConfig(e){ //获取赊账页面设置
  234. let self = this
  235. request({
  236. method: 'get',
  237. params: {
  238. r: '/store/client/credit/setting-credit',
  239. goods_name:self.search.goods_name
  240. },
  241. data: {},
  242. }).then(e => {
  243. self.listLoading = false;
  244. self.creditStoreList = e.data.data.list
  245. self.isOpenCredit = e.data.data.is_open_credit
  246. self.credit_rate = e.data.data.credit_rate
  247. self.pagination = e.data.data.pagination;
  248. self.pagination.pageSize = e.data.data.page_size;
  249. self.pagination.total_count = e.data.data.count;
  250. console.log('赊账功能返回',e.data)
  251. }).catch(e => {
  252. console.log(e);
  253. });
  254. },
  255. //设置收银台赊账比例
  256. postCashierCredit(){
  257. let self = this
  258. self.listLoading = true ;
  259. request({
  260. method: 'POST',
  261. params: {
  262. r: '/store/client/credit/cashier-credit',
  263. },
  264. data: {credit_rate:this.credit_rate},
  265. }).then(e => {
  266. self.listLoading = false;
  267. if(e.data.code == 0){
  268. self.$message.success('收银台赊账比例设置成功')
  269. self.proportionVisible = false
  270. }else{
  271. self.$message.error(e.data.msg)
  272. }
  273. }).catch(e => {
  274. console.log(e);
  275. });
  276. },
  277. postGoodCredit(){
  278. let self = this
  279. self.listLoading = true ;
  280. request({
  281. method: 'POST',
  282. params: {
  283. r: '/store/client/credit/good-credit',
  284. },
  285. data: {credit_rate:this.good_credit_rate,id:this.id},
  286. }).then(e => {
  287. self.listLoading = false;
  288. if(e.data.code == 0){
  289. self.$message.success('编辑成功');
  290. self.proportionVisible_goods= false;
  291. this.getCreditConfig()
  292. }
  293. }).catch(e => {
  294. console.log(e);
  295. });
  296. },
  297. toDel(id){
  298. let self = this;
  299. self.$confirm('删除该商品, 是否继续?', '提示', {
  300. confirmButtonText: '确定',
  301. cancelButtonText: '取消',
  302. type: 'warning'
  303. }).then(() => {
  304. request({
  305. method: 'POST',
  306. params: {
  307. r: '/store/client/credit/good-credit',
  308. },
  309. data: {credit_rate:0,id:id},
  310. }).then(e => {
  311. self.listLoading = false;
  312. if(e.data.code == 0){
  313. self.$message.success('删除成功');
  314. self.proportionVisible_goods= false;
  315. this.getCreditConfig()
  316. }
  317. }).catch(e => {
  318. console.log(e);
  319. });
  320. }).catch(() => {
  321. self.$message.info('已取消删除')
  322. });
  323. },
  324. pageChange(currentPage) {
  325. let self = this;
  326. self.page = currentPage;
  327. self.getCreditConfig();
  328. },
  329. }
  330. });
  331. </script>