Jelajahi Sumber

接口对接

zhangdan 4 tahun lalu
induk
melakukan
b61fce62ca

+ 54 - 0
src/api/businessManage.js

@@ -0,0 +1,54 @@
+import { axios } from '@/utils/request'
+
+/* 商品分类 */
+
+// 列表
+export const getSellerList = (params) => {
+  const url = `seller/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 启用禁用
+export const changeSellerStatus = (params) => {
+  const url = `seller/enable/${params.id}/${params.flag}`
+  return axios({
+    url: url,
+    data: params,
+    method: 'get'
+  })
+}
+
+// 查看编辑
+export const SellerDetails = (params) => {
+  const url = `seller/findById/${params.id}`
+  return axios({
+    url: url,
+    data: params,
+    method: 'get'
+  })
+}
+
+// 编辑/保存
+export const saveSeller = (params) => {
+  const url = `seller/save`
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+
+// 获取网点小程序码
+export const sellerQrCode = params => {
+  const url = `seller/qrCode/${params.officialPartnerNo}`
+  return axios.request({
+    url: url,
+    method: 'get'
+  })
+}

+ 8 - 28
src/views/businessManage/partnerManage/addPartnerModal.vue

@@ -17,15 +17,7 @@
             placeholder="请输入供应商名称(最多30个字符)"
             allowClear />
         </a-form-item>
-        <a-form-item label="供应商简称" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
-          <a-input
-            id="addSupplierModal-simpleName"
-            :maxLength="30"
-            v-decorator="['formData.simpleName', { initialValue: formData.simpleName,getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入供应商简称(最多30个字符)!' }] }]"
-            placeholder="请输入供应商简称(最多30个字符)"
-            allowClear />
-        </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-input
             id="addSupplierModal-contactName"
             :maxLength="30"
@@ -33,7 +25,7 @@
             placeholder="请输入联系人"
             allowClear />
         </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-input
             id="addSupplierModal-contactPhone"
             :maxLength="11"
@@ -41,14 +33,6 @@
             placeholder="请输入手机号码"
             allowClear />
         </a-form-item>
-        <a-form-item label="备注" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
-          <a-textarea
-            :maxLength="500"
-            v-decorator="['formData.remarks', { initialValue: formData.remarks, rules: [{ required: false, message: '请输入备注内容(最多500个字符)!' }] }]"
-            id="addSupplierModal-remarks"
-            placeholder="请输入备注内容(最多500个字符)"
-            allowClear />
-        </a-form-item>
         <a-form-item :wrapper-col="{ span: 12, offset: 6}" style="text-align: center;">
           <a-button type="primary" html-type="submit" id="addSupplierModal-submit" style="margin-right: 15px">保存</a-button>
           <a-button @click="isShow=false" style="margin-left: 15px" id="addSupplierModal-close">取消</a-button>
@@ -60,9 +44,9 @@
 
 <script>
 import {
-  supplierDetails,
-  saveSupplier
-} from '@/api/shopSetting.js'
+  SellerDetails,
+  saveSeller
+} from '@/api/businessManage.js'
 export default {
   name: 'AddPartnerModal',
   props: {
@@ -93,12 +77,10 @@ export default {
       },
 	  titleText: '新增',
       isShow: this.openSupplierModal,
-      form: this.$form.createForm(this, { name: 'addSupplierModal' }),
+      form: this.$form.createForm(this, { name: 'AddPartnerModal' }),
       formData: {
         name: '', // 名称
-        simpleName: '', // 简称
         contactName: '', // 联系人
-        remarks: '', // 备注
         contactPhone: '' // 手机号码
       }
     }
@@ -106,16 +88,14 @@ export default {
   methods: {
     // 查看详情
     getPageInfo () {
-      supplierDetails({
+      SellerDetails({
         id: this.itemId
       }).then(res => {
         if (res.status == 200) {
           // this.form.setFieldsValue({ 'formData': res.data })
           this.form.setFieldsValue({ 'formData.name': res.data.name })
           this.form.setFieldsValue({ 'formData.contactName': res.data.contactName })
-          this.form.setFieldsValue({ 'formData.simpleName': res.data.simpleName })
           this.form.setFieldsValue({ 'formData.contactPhone': res.data.contactPhone })
-          this.form.setFieldsValue({ 'formData.remarks': res.data.remarks })
         }
       })
     },
@@ -127,7 +107,7 @@ export default {
         if (!err) {
           const formData = Object.assign({}, this.itemData, this.formData, values.formData)
           formData.id = _this.itemId
-          saveSupplier(formData).then(res => {
+          saveSeller(formData).then(res => {
             console.log(res, 'rrrrrrrrr')
             if (res.status == 200) {
               _this.$message.success(res.message)

+ 115 - 54
src/views/businessManage/partnerManage/partnerManage.vue

@@ -5,7 +5,21 @@
       <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.name" :maxLength="30" placeholder="请输入" id="OperateJournal-name"/></a-form-item>
+            <a-form-item label="结算时间:" :label-col="{ span: 3 }" :wrapper-col="{ span: 12 }">
+              <a-range-picker
+                style="width:100%"
+                id="PaySettlementRecords-queryOrderDate"
+                :disabledDate="disabledDate"
+                v-model="queryOrderDate"
+                format="YYYY-MM-DD"
+                :placeholder="['开始时间', '结束时间']" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="供应商名称"><a-input allowClear v-model.trim="queryParam.name" :maxLength="30" placeholder="请输入" id="OperateJournal-name"/></a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="负责人手机号码"><a-input allowClear v-model.trim="queryParam.contactPhone" :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>
@@ -24,14 +38,18 @@
       :data="loadData"
       bordered>
       <span slot="action" slot-scope="text, record">
-        <a-icon
-          v-if="record.state==0"
-          type="edit"
-          id="bannerSetting-handleEdit"
-          title="编辑"
-          class="actionBtn icon-blues"
-          @click="handleEdit(record)" />
-        <span v-if="record.state==1">--</span>
+        <template>
+          <a-icon
+            v-if="record.state==0"
+            type="edit"
+            id="bannerSetting-handleEdit"
+            title="编辑"
+            class="actionBtn icon-blues"
+            @click="handleEdit(record)" />
+          <span v-if="record.state==1">--</span>
+        </template>
+
+        <a-icon type="qrcode" title="查看小程序码" @click="getQrCode(record)" :style="{ fontSize: '20px', color: '#e29e14', padding: '0 10px' }" />
       </span>
       <span slot="state" slot-scope="text, record">
         <a-switch
@@ -45,12 +63,25 @@
     </s-table>
     <!-- 新增编辑弹窗 -->
     <add-partner-modal :itemId="itemId" :itemData="itemData" :openSupplierModal="openSupplierModal" @refresh="$refs.table.refresh(true)" @close="cancel"></add-partner-modal>
+    <!-- 查看小程序码 -->
+    <a-modal
+      class="qrCodeModal"
+      title="查看小程序码"
+      :width="500"
+      :footer="null"
+      :destroyOnClose="true"
+      @cancel="isQrCodeModal = false"
+      v-model="isQrCodeModal">
+      <img :src="qrCode" width="400" height="400" class="qrCode" />
+      <a-button type="primary" class="downQrCode" @click="downloadCode">下载小程序码</a-button>
+    </a-modal>
   </a-card>
 </template>
 
 <script>
+import moment from 'moment'
 import { Upload, STable, VSelect } from '@/components'
-import { getSupplierList, changeSupplierStatus } from '@/api/shopSetting.js'
+import { getSellerList, changeSellerStatus, sellerQrCode } from '@/api/businessManage.js'
 import addPartnerModal from './addPartnerModal.vue'
 export default {
   components: {
@@ -61,8 +92,16 @@ export default {
   },
   data () {
     return {
-      searchData: { name: '' },
+      queryParam: {
+        name: '',
+        beginDate: '',
+        endDate: '',
+        contactPhone: ''
+      },
+	  queryOrderDate: undefined,
 	  openSupplierModal: false, // 默认关闭弹窗
+	  isQrCodeModal: false, //  查看小程序码   弹框展示状态
+	  qrCode: '',
 	  itemId: null, // 编辑行id
 	  itemData: {}, // 编辑行数据
       // 表头
@@ -74,19 +113,20 @@ export default {
           align: 'center'
         },
         {
-          title: '供应商名称',
-          width: 200,
-          dataIndex: 'name',
-          align: 'center'
+		  title: '创建时间',
+		  width: 200,
+		  dataIndex: 'createDate',
+		  align: 'center'
         },
         {
-          title: '供应商简称',
+          title: '商户名称',
           width: 100,
-          dataIndex: 'simpleName',
+          dataIndex: 'name',
           align: 'center'
         },
+
         {
-		  title: '联系人',
+		  title: '负责人',
 		  width: 100,
 		  dataIndex: 'contactName',
 		  align: 'center'
@@ -109,15 +149,6 @@ export default {
             customRender: 'state'
           }
         },
-        {
-		  title: '备注',
-		  width: 200,
-		  dataIndex: 'remarks',
-		  align: 'center',
-		  customRender: (text) => {
-		    return text || '--'
-		  }
-        },
         {
           title: '操作',
           align: 'center',
@@ -129,8 +160,17 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        return getSupplierList(
-          Object.assign(parameter, this.searchData)
+		  const searchData = Object.assign(parameter, this.queryParam)
+		  console.log(this.queryOrderDate, 'this.queryOrderDate')
+		  if (this.queryOrderDate && this.queryOrderDate.length) {
+		    searchData.beginDate = moment(this.queryOrderDate[0]).format('YYYY-MM-DD')
+		    searchData.endDate = moment(this.queryOrderDate[1]).format('YYYY-MM-DD')
+		  } else {
+		    searchData.beginDate = ''
+		    searchData.endDate = ''
+		  }
+        return getSellerList(
+          searchData
         ).then(res => {
           const no = (res.data.pageNo - 1) * res.data.pageSize
 		   if (res.status == 200) {
@@ -156,6 +196,10 @@ export default {
     }
   },
   methods: {
+	  // 禁止不可选日期
+	  disabledDate (current) {
+	    return current && current > moment().endOf('day')
+	  },
     showModal () {
       this.itemId = null
 	  this.itemData = {}
@@ -174,7 +218,11 @@ export default {
     },
     // 重置
     resetForm () {
-      this.searchData.name = ''
+      this.queryOrderDate = undefined
+      this.queryParam.name = ''
+	  this.queryParam.beginDate = ''
+	  this.queryParam.endDate = ''
+	  this.queryParam.contactPhone = ''
       this.$refs.table.refresh(true)
     },
     // 更改启用禁用状态
@@ -185,39 +233,52 @@ export default {
     	  id: record.id,
     	  flag: record.state == 1 ? '0' : '1'
       }
-      if (record.state == 1) {
-    	  this.$confirm({
-    		  title: '提示',
-    		  centered: true,
-    		  content: '确定禁用该供货商吗?',
-    		  okText: '确定',
-    		  cancelText: '取消',
-    		  onOk () {
-    	      changeSupplierStatus(_data).then(res => {
-    			 if (res.status == 200) {
-                _this.$message.success(res.message)
-                _this.$refs.table.refresh()
-    			  }
-    	      })
-    	     }
-    	  })
-      } else {
-        changeSupplierStatus(_data).then(res => {
+      changeSellerStatus(_data).then(res => {
     	  if (res.status == 200) {
-            _this.$message.success(res.message)
-            _this.$refs.table.refresh()
+          _this.$message.success(res.message)
+          _this.$refs.table.refresh()
     	  } else {
-            record.state = !record.state
+          record.state = !record.state
     	  }
-        })
-      }
+      })
+    },
+    // 查看小程序码
+    getQrCode (item) {
+	  sellerQrCode({ officialPartnerNo: item.officialPartnerNo }).then(res => {
+	    if (res.status == 200) {
+	      this.qrCode = 'data:image/png;base64,' + res.data
+	      this.isQrCodeModal = true
+	    } else {
+	      this.qrCode = ''
+	      this.$message.error(res.message)
+	    }
+	  })
+    },
+    //  下载小程序码
+    downloadCode () {
+	  const link = document.createElement('a')
+	  link.href = this.qrCode
+	  link.download = 'qrCode.png'
+	  link.click()
     }
   }
 }
 </script>
 
-<style scoped>
+<style lang="less" scoped>
 .addBtn {
   margin-bottom: 20px;
 }
+// 查看小程序码  弹框
+.qrCodeModal {
+	.qrCode {
+		display: block;
+		max-width: 100%;
+		margin: 0 auto;
+	}
+	.downQrCode {
+		display: block;
+		margin: 40px auto 30px;
+	}
+}
 </style>