zhangdan 4 年之前
父節點
當前提交
471f720426

+ 89 - 0
src/api/shopSetting.js

@@ -0,0 +1,89 @@
+import { axios } from '@/utils/request'
+
+/* 商品分类 */
+
+// 列表
+export const getGoodsClassList = (params) => {
+  const url = `goodsType/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 启用禁用
+export const changeGoodsStatus = (params) => {
+  const url = `goodsType/enable/${params.id}/${params.flag}`
+  return axios({
+    url: url,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 详情
+export const goodsClassDetails = (params) => {
+  const url = `goodsType/findById/${params.id}`
+  return axios({
+    url: url,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 编辑/保存
+export const saveGoodsClass = (params) => {
+  const url = `goodsType/save`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+/* 供货商管理 */
+
+// 列表
+export const getSupplierList = (params) => {
+  const url = `partner/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 启用禁用
+export const changeSupplierStatus = (params) => {
+  const url = `partner/enable/${params.id}/${params.flag}`
+  return axios({
+    url: url,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 详情
+export const supplierDetails = (params) => {
+  const url = `partner/findById/${params.id}`
+  return axios({
+    url: url,
+    data: {},
+    method: 'get'
+  })
+}
+
+// 编辑/保存
+export const saveSupplier = (params) => {
+  const url = `partner/save`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}

+ 24 - 0
src/config/router.config.js

@@ -193,6 +193,30 @@ export const asyncRouterMap = [{
       }
     ]
   },
+  {
+	  path: '/releaseRecord',
+	  name: 'releaseRecord',
+	  component: PageView,
+	  hideChildrenInMenu: true,
+	  redirect: '/releaseRecord/list',
+	  meta: {
+	    title: '投放记录',
+	    icon: 'shop'
+	    // permission: 'M_tenants_list'
+	  },
+	  children: [
+	    {
+	      path: '/releaseRecord/list',
+	      name: 'releaseRecordList',
+	      component: () => import(/* webpackChunkName: "tenants" */ '@/views/releaseRecord/releaseRecordList.vue'),
+	      meta: {
+	        title: '投放记录',
+	        icon: 'profile'
+	        // permission: 'M_tenants_list'
+	      }
+	    }
+	  ]
+  },
   {
     path: '/shopSetting',
     redirect: '/shopSetting/bannerSetting',

+ 8 - 0
src/views/releaseRecord/releaseRecordList.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 32 - 24
src/views/shopSetting/addGoodsClassModal.vue

@@ -14,43 +14,53 @@
         v-bind="formItemLayout"
         @submit="handleSubmit"
       >
-        <a-form-item label="商品名称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+        <a-form-item label="商品分类名称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input
-            id="bannerSetting-title"
+            id="addGoodsClassModal-name"
             :maxLength="30"
-            v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商名称(最多30个字符)!' }] }]"
+            v-decorator="['formData.name', { initialValue: formData.name,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商名称(最多30个字符)!' }] }]"
             :disabled="disabled"
             placeholder="请输入商品名称(最多30个字符)"
             allowClear
           />
         </a-form-item>
+        <a-form-item label="是否限制订单起购金额" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+          <v-select
+            v-model="formData.isGoldLimit"
+            ref="isGoldLimit"
+            id="addGoodsClassModal-isGoldLimit"
+            code="SETTLE_STATUS_ALL"
+            placeholder="请选择"
+            allowClear></v-select>
+        </a-form-item>
         <a-form-item label="订单起购金额" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input-number
-            id="addGoodsClass-price"
+            id="addGoodsClassModal-goldLimit"
             class="inpNumber"
             :min="0"
             :max="999999"
             :precision="2"
-            v-decorator="[ 'formData.price', { initialValue: formData.price, rules: [{ required: true, message: '请输入订单起购金额(0~999999)' }] } ]"
+            v-decorator="[ 'formData.goldLimit', { initialValue: formData.goldLimit, rules: [{ required: true, message: '请输入订单起购金额(0~999999)' }] } ]"
             placeholder="请输入订单起购金额(0~999999)"
             allowClear />
+          <span class="inp-unit">乐豆</span>
         </a-form-item>
-        <a-form-item label="状态" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+        <!-- <a-form-item label="状态" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-radio-group
             :disabled="disabled"
-            id="bannerSetting-status"
+            id="addGoodsClassModal-status"
             v-decorator="['formData.status', { initialValue: formData.status, rules: [{ required: true, message: '请选择状态!' }] }]"
           >
             <a-radio value="1">启用</a-radio>
             <a-radio value="0">禁用</a-radio>
           </a-radio-group>
-        </a-form-item>
+        </a-form-item> -->
         <a-form-item label="备注" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-textarea
             :maxLength="500"
-            v-decorator="['formData.url', { initialValue: formData.url, rules: [{ required: false, message: '请输入备注内容(最多500个字符)!' }] }]"
+            v-decorator="['formData.remarks', { initialValue: formData.remarks, rules: [{ required: false, message: '请输入备注内容(最多500个字符)!' }] }]"
             :disabled="disabled"
-            id="bannerSetting-url"
+            id="addGoodsClassModal-remarks"
             placeholder="请输入备注内容(最多500个字符)"
             allowClear
           />
@@ -65,7 +75,10 @@
 </template>
 
 <script>
+import { VSelect } from '@/components'
+import { saveGoodsClass } from '@/api/shopSetting.js'
 export default {
+  components: { VSelect },
   props: {
     openGoodClassModal: {
       type: Boolean,
@@ -96,13 +109,10 @@ export default {
       formLayout: 'horizontal',
       // hideRequiredMark: false, // 是否显示必填的* 默认显示
       formData: {
-		  title: '', // 标题
-		  url: '', // 图片路径
-		  status: '', // 状态
-		  sort: '', // 排序
-		  position: '', // 广告图位置
-		  photoPath: '', // banner地址
-		  createDate: ''
+		  name: '', // 分类名称
+		  isGoldLimit: '', // 是否限制订单起购金额
+		  goldLimit: '', // 限制金额
+		  remarks: '' // 备注
       },
       bannerType: 'app',
       disabled: false,
@@ -118,7 +128,7 @@ export default {
 	  },
     close () {
 	  this.visible = false
-	  this.formData.title = ''
+	  this.formData.name = ''
 	  this.photo = ''
 	  this.formData.url = ''
 	  this.formData.status = ''
@@ -127,8 +137,8 @@ export default {
 	  this.formData.photoBasePath = ''
 	  this.formData.photoPath = ''
 	  this.title = '新增'
-			  // this.$refs.bannerImage.setFileList('')
-			  // this.form.resetFields()
+	  // this.$refs.bannerImage.setFileList('')
+	  // this.form.resetFields()
     },
     // 赋值
     assignment (row) {
@@ -141,11 +151,9 @@ export default {
 	  this.form.validateFields((err, values) => {
 	    if (!err) {
 	      // console.log('Received values of form: ', values, this.formData)
-	      // const formData = Object.assign({}, this.formData, values.formData, {
-	      //   bannerType: 'app'
-	      // })
+	      // const formData = Object.assign({}, this.formData, values.formData)
 	      // console.log(formData, _this.radioGroup)
-	      // saveItem(formData, _this.radioGroup).then(res => {
+	      // saveGoodsClass(formData, _this.radioGroup).then(res => {
 	      //   console.log(res, 'rrrrrrrrr')
 	      //   if (res.status == 200) {
 	      //     _this.$message.success(res.message)

+ 10 - 51
src/views/shopSetting/addSupplierModal.vue

@@ -16,9 +16,9 @@
         :hideRequiredMark="hideRequiredMark">
         <a-form-item label="供应商名称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input
-            id="bannerSetting-title"
+            id="addSupplierModal-contactName"
             :maxLength="30"
-            v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商名称(最多30个字符)!' }] }]"
+            v-decorator="['formData.contactName', { initialValue: formData.contactName,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商名称(最多30个字符)!' }] }]"
             :disabled="disabled"
             placeholder="请输入供应商名称(最多30个字符)"
             allowClear
@@ -26,9 +26,9 @@
         </a-form-item>
         <a-form-item label="供应商简称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input
-            id="bannerSetting-title"
+            id="addSupplierModal-simpleName"
             :maxLength="30"
-            v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商简称(最多30个字符)!' }] }]"
+            v-decorator="['formData.simpleName', { initialValue: formData.simpleName,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商简称(最多30个字符)!' }] }]"
             :disabled="disabled"
             placeholder="请输入供应商简称(最多30个字符)"
             allowClear
@@ -36,7 +36,7 @@
         </a-form-item>
         <a-form-item label="联系人" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input
-            id="bannerSetting-title"
+            id="addSupplierModal-title"
             :maxLength="30"
             v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入联系人!' }] }]"
             :disabled="disabled"
@@ -46,9 +46,9 @@
         </a-form-item>
         <a-form-item label="手机号码" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
           <a-input
-            id="bannerSetting-title"
+            id="addSupplierModal-simpleName"
             :maxLength="11"
-            v-decorator="['formData.title', { initialValue: formData.title,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入手机号码!' }] }]"
+            v-decorator="['formData.', { initialValue: formData.simpleName,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入手机号码!' }] }]"
             :disabled="disabled"
             placeholder="请输入手机号码"
             allowClear
@@ -59,55 +59,14 @@
             :maxLength="500"
             v-decorator="['formData.url', { initialValue: formData.url, rules: [{ required: false, message: '请输入备注内容(最多500个字符)!' }] }]"
             :disabled="disabled"
-            id="bannerSetting-url"
+            id="addSupplierModal-url"
             placeholder="请输入备注内容(最多500个字符)"
             allowClear
           />
         </a-form-item>
-        <!-- <a-form-item label="排序" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
-		      <a-input
-		        type="number"
-		        oninput="if(value.length>6)value=value.slice(0,6);if(value<0)value=0"
-		        v-decorator="['formData.sort', { initialValue: formData.sort,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入(0~999999)之间的序号值!' }] }]"
-		        :disabled="disabled"
-		        id="bannerSetting-sort"
-		        placeholder="请输入(0~999999)之间的序号值"
-		        allowClear
-		      />
-		    </a-form-item>
-		    <a-form-item label="状态" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
-		      <a-radio-group
-		        :disabled="disabled"
-		        id="bannerSetting-status"
-		        v-decorator="['formData.status', { initialValue: formData.status, rules: [{ required: true, message: '请选择状态!' }] }]"
-		      >
-		        <a-radio value="1">启用</a-radio>
-		        <a-radio value="0">禁用</a-radio>
-		      </a-radio-group>
-		    </a-form-item> -->
-        <!-- <a-form-item label="上传图片" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
-		      <Upload
-		        v-if="title != '查看详情'"
-		        id="bannerSetting-photoPath"
-		        v-decorator="[
-		          'formData.photoPath',
-		          {
-		            initialValue: formData.photoPath,
-		            rules: [{ required: true, message: '请上传轮播图!' }]
-		          }
-		        ]"
-		        ref="bannerImage"
-		        :fileSize="0.25"
-		        :disabled="disabled"
-		        @change="getbannerImage"
-		        listType="picture-card"
-		        upText="上传"
-		      ></Upload>
-		      <img v-else :src="formData.photoPath" style="width:100px ;height: auto;" />
-		    </a-form-item> -->
         <a-form-item :wrapper-col="{ span: 12, offset: 6}" style="text-align: center;">
-          <a-button type="primary" html-type="submit" v-if="!disabled" id="bannerSetting-submit" style="margin-right: 15px">保存</a-button>
-          <a-button @click="close()" v-if="!disabled" style="margin-left: 15px" id="bannerSetting-close">取消</a-button>
+          <a-button type="primary" html-type="submit" v-if="!disabled" id="addSupplierModal-submit" style="margin-right: 15px">保存</a-button>
+          <a-button @click="close()" v-if="!disabled" style="margin-left: 15px" id="addSupplierModal-close">取消</a-button>
         </a-form-item>
       </a-form>
     </a-modal>

+ 19 - 18
src/views/shopSetting/goodsClass.vue

@@ -5,7 +5,7 @@
       <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
         <a-row :gutter="48" >
           <a-col :md="6" :sm="24">
-            <a-form-item label="商品分类名称"><a-input allowClear v-model.trim="searchData.queryWord" :maxLength="30" placeholder="请输入" id="OperateJournal-queryWord"/></a-form-item>
+            <a-form-item label="商品分类名称"><a-input allowClear v-model.trim="searchData.name" :maxLength="30" placeholder="请输入" id="OperateJournal-queryWord"/></a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
             <a-button style="margin-right: 10px;" type="primary" @click="$refs.table.refresh(true)" id="OperateJournal-refreshTable">查询</a-button>
@@ -26,7 +26,7 @@
       :data="loadData"
       bordered>
       <!-- 广告图位置 -->
-      <span slot="position" slot-scope="text">{{ $refs.position.getNameByCode(text) }}</span>
+      <!-- <span slot="position" slot-scope="text">{{ $refs.position.getNameByCode(text) }}</span> -->
       <span slot="action" slot-scope="text, record">
         <a-icon
           type="eye"
@@ -37,24 +37,24 @@
         <a-icon
           type="edit"
           id="bannerSetting-handleEdit"
-          v-if="record.status == '0'"
+          v-if="record.state == '0'"
           title="编辑"
           class="actionBtn icon-blues"
           @click="handleEdit(record, 0)" />
         <a-icon
           type="delete"
           id="bannerSetting-delect"
-          v-if="record.status == '0'"
+          v-if="record.state == '0'"
           title="删除"
           class="actionBtn icon-red"
           @click="delect(record)" />
       </span>
-      <span slot="status" slot-scope="text, record">
+      <span slot="state" slot-scope="text, record">
         <a-switch
           checkedChildren="启用"
           unCheckedChildren="禁用"
           id="bannerSetting-changeFlagHandle"
-          v-model="record.status == 1 ? true : false"
+          v-model="record.state == 1 ? true : false"
           @change="changeFlagHandle(text, record)"
         />
       </span>
@@ -67,7 +67,7 @@
 import { Upload, STable, VSelect } from '@/components'
 import addGoodsClassModal from './addGoodsClassModal.vue'
 // import Editor from '@/components/WEeditor'
-// import { getBannerSettingList, changeStatus, deleteItem, saveItem } from '@/api/bannerSetting.js'
+import { getGoodsClassList, changeGoodsStatus, goodsClassDetails } from '@/api/shopSetting.js'
 
 export default {
   components: {
@@ -78,7 +78,7 @@ export default {
   },
   data () {
     return {
-      searchData: { queryWord: '' },
+      searchData: { name: '' },
       openGoodClassModal: false, // 默认关闭弹窗
       itemData: {}, // 编辑行数据
       // 表头
@@ -92,22 +92,22 @@ export default {
         {
           title: '商品分类名称',
           width: 100,
-          dataIndex: 'title',
+          dataIndex: 'name',
           align: 'center'
         },
         {
           title: '订单起购金额',
           width: 100,
-          dataIndex: 'sort',
+          dataIndex: 'goldLimit',
           align: 'center'
         },
         {
           title: '状态',
           width: 100,
-          dataIndex: 'status',
+          dataIndex: 'state',
           align: 'center',
           scopedSlots: {
-            customRender: 'status'
+            customRender: 'state'
           }
         },
         {
@@ -130,8 +130,8 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        // return getBannerSettingList({
-        //   bannerType: 'app'
+        // return getGoodsClassList({
+        //  Object.assign(parameter, this.searchData)
         // }).then(res => {
         //   // console.log(res, '1111')
         //   const no = 0
@@ -189,12 +189,13 @@ export default {
       // this.hideRequiredMark = false
     },
     // 轮播图change
-    getbannerImage (data) {
-      this.formData.photoPath = data
-    },
+    // getbannerImage (data) {
+    //   this.formData.photoPath = data
+    // },
     // 重置
     resetForm () {
-      this.searchData.queryWord = ''
+      this.searchData.name = ''
+	  this.$refs.table.refresh(true)
     },
     // 点击保存;
     handleSubmit (e) {

+ 23 - 23
src/views/shopSetting/supplier.vue

@@ -5,7 +5,7 @@
       <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
         <a-row :gutter="48">
           <a-col :md="6" :sm="24">
-            <a-form-item label="供应商名称"><a-input allowClear v-model.trim="searchData.queryWord" :maxLength="30" placeholder="请输入" id="OperateJournal-queryWord"/></a-form-item>
+            <a-form-item label="供应商名称"><a-input allowClear v-model.trim="searchData.name" :maxLength="30" placeholder="请输入" id="OperateJournal-name"/></a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
             <a-button style="margin-right: 10px;" type="primary" @click="$refs.table.refresh(true)" id="OperateJournal-refreshTable">查询</a-button>
@@ -60,26 +60,26 @@
       </span>
     </s-table>
     <!-- 新增编辑弹窗 -->
-	<add-supplier-modal :itemData="itemData" :openSupplierModal="openSupplierModal" @close="openSupplierModal=false"></add-supplier-modal>
+    <add-supplier-modal :itemData="itemData" :openSupplierModal="openSupplierModal" @close="openSupplierModal=false"></add-supplier-modal>
   </a-card>
 </template>
 
 <script>
 import { Upload, STable, VSelect } from '@/components'
-import { getBannerSettingList, changeStatus, deleteItem, saveItem } from '@/api/bannerSetting.js'
+import { getSupplierList, changeSupplierStatus, goodsClassDetails } from '@/api/shopSetting.js'
 import addSupplierModal from './addSupplierModal.vue'
 export default {
   components: {
     STable,
     Upload,
     VSelect,
-	addSupplierModal
+    addSupplierModal
   },
   data () {
     return {
-      searchData: { queryWord: '' },
-	  openSupplierModal:false, //默认关闭弹窗
-	  itemData:{},//编辑行数据
+      searchData: { name: '' },
+	  openSupplierModal: false, // 默认关闭弹窗
+	  itemData: {}, // 编辑行数据
       // 表头
       columns: [
         {
@@ -91,19 +91,19 @@ export default {
         {
           title: '供应商名称',
           width: 100,
-          dataIndex: 'title',
+          dataIndex: 'contactName',
           align: 'center'
         },
         {
           title: '供应商简称',
           width: 100,
-          dataIndex: 'sort',
+          dataIndex: 'simpleName',
           align: 'center'
         },
         {
 		  title: '手机号码',
 		  width: 200,
-		  dataIndex: 'position',
+		  dataIndex: 'contactPhone',
 		  align: 'center',
 		  scopedSlots: {
 		    customRender: 'position'
@@ -138,17 +138,17 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return getBannerSettingList({
-          bannerType: 'app'
-        }).then(res => {
-          // console.log(res, '1111')
-          const no = 0
-          for (let i = 0; i < res.data.length; i++) {
-            const _item = res.data[i]
-            _item.no = no + i + 1
-          }
-          return res.data
-        })
+        // return getSupplierList({
+        //   Object.assign(parameter, this.searchData)
+        // }).then(res => {
+        //   // console.log(res, '1111')
+        //   const no = 0
+        //   for (let i = 0; i < res.data.length; i++) {
+        //     const _item = res.data[i]
+        //     _item.no = no + i + 1
+        //   }
+        //   return res.data
+        // })
       },
       title: '编辑',
       closable: true,
@@ -176,7 +176,7 @@ export default {
       },
       bannerType: 'app',
       disabled: false,
-      value: '',
+      value: ''
     }
   },
   beforeCreate () {
@@ -186,7 +186,7 @@ export default {
   },
   methods: {
     showModal () {
-		// if()
+      // if()
       this.disabled = false
       delete this.formData.id
       delete this.formData.createDate