index.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. <?php
  2. /**
  3. * @link:http://www.goodmall.com/
  4. * @copyright: Copyright (c) 2020
  5. * 名片
  6. * Author: james
  7. * Date: 2020-07-10
  8. * Time: 15:48
  9. */
  10. ?>
  11. <div id="app" v-cloak>
  12. <el-card shadow="never" style="border:0;min-width: 1200px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  13. <div slot="header">
  14. <span>基础设置</span>
  15. </div>
  16. <div class="table-body">
  17. <el-tabs v-model="activeName" @tab-click="handleClick">
  18. <el-form size="small" ref="form" label-width="200px" style="width: 800px" :model="form" :rules="rules">
  19. <el-form-item label="是否启用插件" prop="status">
  20. <el-switch
  21. v-model="form.is_enable"
  22. :active-value="1"
  23. :inactive-value="0">
  24. </el-switch>
  25. <p class="tips-text">开启时,商城有关代购买功能点全部显示,关闭时则隐藏</p>
  26. </el-form-item>
  27. <el-form-item label="是否开启验证码" prop="is_enable_sms_code">
  28. <el-switch
  29. v-model="form.is_enable_sms_code"
  30. :active-value="1"
  31. :inactive-value="0">
  32. </el-switch>
  33. <p class="tips-text">开启时,代购买下单输入他人手机号时需要验证码,关闭则隐藏。</p>
  34. </el-form-item>
  35. <el-form-item label="是否开启退款退货" prop="is_enable_order_refund">
  36. <el-switch
  37. v-model="form.is_enable_order_refund"
  38. :active-value="1"
  39. :inactive-value="0">
  40. </el-switch>
  41. <p class="tips-text">开启时,前端显示退款退货按钮</p>
  42. </el-form-item>
  43. <el-form-item label="允许代客下单的会员等级">
  44. <el-radio-group v-model="form.allow_all_level_valet_order">
  45. <el-radio :label="1">所有等级</el-radio>
  46. <el-radio :label="0">指定等级</el-radio>
  47. </el-radio-group>
  48. </el-form-item>
  49. <el-form-item label="指定等级" v-if="!form.allow_all_level_valet_order">
  50. <el-select v-model="form.allow_valet_order_user_levels" multiple>
  51. <el-option key="普通用户" label="普通用户" :value="0"></el-option>
  52. <el-option v-for="(item, index) in userLevelList" :key="index" :value="item.level" :label="item.name"></el-option>
  53. </el-select>
  54. </el-form-item>
  55. <el-form-item label="是否限制代下单">
  56. <el-radio-group v-model="form.is_limit_same_team">
  57. <el-radio :label="0">不限制</el-radio>
  58. <el-radio :label="1">同团队</el-radio>
  59. <el-radio :label="2">仅直推下级</el-radio>
  60. </el-radio-group>
  61. <p class="tips-text">不限制:可以给任何人代下单<br>同团队:只能给同团队的人代下单<br>仅直推下级:只能给直推下级代下单</p>
  62. </el-form-item>
  63. <el-form-item label="是否隐藏订单价格">
  64. <el-switch
  65. v-model="form.is_hide_order_price"
  66. :active-value="1"
  67. :inactive-value="0">
  68. </el-switch>
  69. <p class="tips-text">开启后被代购人的订单详情页不显示价格</p>
  70. </el-form-item>
  71. <el-form-item label="是否按被代客用户价格权益" prop="is_enable_other_identity_price">
  72. <el-switch
  73. v-model="form.is_enable_other_identity_price"
  74. :active-value="1"
  75. :inactive-value="0">
  76. </el-switch>
  77. <p class="tips-text">开启时,支付价格为被下单用户等级的价格,若被代下单用户为非平台用户,则价格为商品原价<br>关闭时,支付价格为代下单用户等级的价格</p>
  78. </el-form-item>
  79. <el-form-item>
  80. <el-button size="small" type="primary" style="padding: 9px 15px !important;" @click="onSubmit">保存配置</el-button>
  81. </el-form-item>
  82. </el-form>
  83. </el-tabs>
  84. </div>
  85. <!-- 这个是复制用的容器,已隐藏 -->
  86. <textarea id="inputs" style="opacity: 0;width: 0;height: 0;">这是幕后黑手</textarea>
  87. </el-card>
  88. </div>
  89. <script>
  90. const app = new Vue({
  91. el: '#app',
  92. data: {
  93. activeName: '',
  94. form: {
  95. is_enable: 0,
  96. is_enable_sms_code: 0,
  97. is_enable_order_refund: 0,
  98. allow_all_level_valet_order: 1,
  99. allow_valet_order_user_levels: [],
  100. is_limit_same_team: 0,
  101. is_hide_order_price: 0,
  102. },
  103. rules: {
  104. },
  105. userLevelList: []
  106. },
  107. mounted() {
  108. // 获取列表首页数据
  109. // this.loadData(this.page,this.search); //获取列表数据
  110. this.getData()
  111. this.getUserLevel()
  112. },
  113. methods: {
  114. //1.0 跳转详情
  115. handleClick(tab, event) {
  116. this.page = 1;
  117. this.search.status = this.activeName;
  118. this.loadData(this.page,this.search)
  119. },
  120. handleSelectionChange(val) {
  121. let self = this;
  122. self.choose_list = [];
  123. val.forEach(function (item) {
  124. self.choose_list.push(item.id);
  125. })
  126. },
  127. getData() {
  128. this.loading = true
  129. request({
  130. method: 'get',
  131. params: {
  132. r: 'valet-order/setting/index',
  133. },
  134. }).then(e => {
  135. this.loading = false;
  136. if (e.data.code === 0) {
  137. this.form = e.data.data
  138. } else {
  139. this.$message.error(e.data.msg);
  140. }
  141. }).catch(e => {
  142. this.loading = false;
  143. });
  144. },
  145. getUserLevel() {
  146. request({
  147. method: 'get',
  148. params: {
  149. r: 'valet-order/setting/get-data',
  150. },
  151. }).then(e => {
  152. if (e.data.code === 0) {
  153. this.userLevelList = e.data.data.user_level_list
  154. } else {
  155. this.$message.error(e.data.msg);
  156. }
  157. })
  158. },
  159. onSubmit() {
  160. this.$refs['form'].validate((valid) => {
  161. if (valid) {
  162. this.loading = true
  163. request({
  164. method: 'post',
  165. params: {
  166. r: 'valet-order/setting/index',
  167. },
  168. data: this.form
  169. }).then(e => {
  170. this.loading = false;
  171. if (e.data.code === 0) {
  172. this.$message.success(e.data.msg);
  173. } else {
  174. this.$message.error(e.data.msg);
  175. }
  176. }).catch(e => {
  177. this.loading = false;
  178. });
  179. } else {
  180. console.log(valid)
  181. }
  182. })
  183. }
  184. }
  185. });
  186. </script>
  187. <style>
  188. .el-tabs__header {
  189. font-size: 16px;
  190. }
  191. .table-body {
  192. padding: 20px;
  193. background-color: #fff;
  194. }
  195. .table-body .el-button {
  196. padding: 0 !important;
  197. border: 0;
  198. margin: 0 5px;
  199. }
  200. .input-item {
  201. width: 250px;
  202. margin: 0 0 20px;
  203. display: inline-block;
  204. }
  205. .input-item .el-input__inner {
  206. border-right: 0;
  207. }
  208. .input-item .el-input__inner:hover {
  209. border: 1px solid #dcdfe6;
  210. border-right: 0;
  211. outline: 0;
  212. }
  213. .input-item .el-input__inner:focus {
  214. border: 1px solid #dcdfe6;
  215. border-right: 0;
  216. outline: 0;
  217. }
  218. .input-item .el-input-group__append {
  219. background-color: #fff;
  220. border-left: 0;
  221. width: 10%;
  222. padding: 0;
  223. }
  224. .input-item .el-input-group__append .el-button {
  225. padding: 0;
  226. }
  227. .input-item .el-input-group__append .el-button {
  228. margin: 0;
  229. }
  230. .batch {
  231. margin: 0 0 20px;
  232. display: inline-block;
  233. }
  234. .batch .el-button {
  235. padding: 9px 15px !important;
  236. }
  237. .item-box{
  238. margin-right: 20px;
  239. }
  240. .item-box .label{
  241. margin-right: 8px;
  242. }
  243. .item-box .symbol{
  244. margin: 0 6px;
  245. }
  246. .form-nickname{
  247. width: 180px;
  248. white-space:nowrap;
  249. overflow:hidden;
  250. text-overflow:ellipsis;
  251. }
  252. .index-video-url{
  253. width: 300px;
  254. }
  255. .index-video-url video{
  256. width: 100%;
  257. }
  258. .index-related-info{
  259. width: 500px;
  260. }
  261. .video-top{
  262. width: 100%;
  263. display: flex;
  264. align-items: flex-start;
  265. box-sizing: border-box;
  266. padding: 20px;
  267. /* opacity: .5; */
  268. background-color: #FFFFFF;
  269. }
  270. .video-top .top-right{
  271. line-height: 26px;
  272. }
  273. .video-top .top-right .top-title{
  274. font-size: 18px;
  275. white-space:nowrap;
  276. overflow:hidden;
  277. text-overflow:ellipsis;
  278. width: 360px;
  279. }
  280. .video-top .top-right .wrapper{
  281. display: flex;
  282. /* align-items: flex-start; */
  283. }
  284. .video-top .top-right .wrapper .to-copy{
  285. /* color: #03C5FF; */
  286. margin-left: 20px;
  287. }
  288. .video-top .top-right .detail-price{
  289. color: #BC0100;
  290. font-size: 18px;
  291. font-family: Microsoft YaHei;
  292. font-weight: bold;
  293. }
  294. /* .atooltip {
  295. background: #FFFFFF !important;
  296. border: none !important;
  297. } */
  298. .el-table th>.cell{
  299. color: #333;
  300. font-weight: bold;
  301. font-size: 14px;
  302. }
  303. .el-table__footer-wrapper, .el-table__header-wrapper{
  304. border-bottom: 1.4px solid #D6D6D6;
  305. }
  306. .price_col{
  307. color: #FF5D05;
  308. }
  309. </style>