소스 검색

产品管理-产品信息管理
产品管理-产品品牌管理
产品管理-产品类别管理

chenrui 4 년 전
부모
커밋
3402cef7cd

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

@@ -205,6 +205,115 @@ export const asyncRouterMap = [{
   // 采购管理
   // 散件管理
   // 产品管理
+  {
+    path: '/productManagement',
+    redirect: '/productManagement/productInfo',
+    component: PageView,
+    meta: {
+      title: '产品管理',
+      icon: 'shop'
+      // permission: 'M_shop'
+    },
+    children: [
+      {
+        path: '/productManagement/productInfo',
+        redirect: '/productManagement/productInfo/list',
+        name: 'productInfo',
+        component: RouteView,
+        meta: {
+          title: '产品信息管理',
+          icon: 'shopping'
+          // permission: 'M_goodsManage_list'
+        },
+        hideChildrenInMenu: true,
+        children: [
+          {
+            path: '/productManagement/productInfo/list',
+            name: 'productInfoList',
+            component: () => import(/* webpackChunkName: "shop" */ '@/views/productManagement/productInfo/list.vue'),
+            meta: {
+              title: '产品信息列表',
+              icon: 'shopping',
+              hidden: true
+              // permission: 'M_goodsManage_list'
+            }
+          },
+          {
+            path: '/productManagement/productInfo/add',
+            name: 'productInfoAdd',
+            component: () => import(/* webpackChunkName: "shop" */ '@/views/productManagement/productInfo/edit.vue'),
+            meta: {
+              title: '新增产品',
+              icon: 'shopping',
+              hidden: true
+              // permission: 'B_goodsManage_edit'
+            }
+          },
+          {
+            path: '/productManagement/productInfo/edit/:id',
+            name: 'productInfoEdit',
+            component: () => import(/* webpackChunkName: "shop" */ '@/views/productManagement/productInfo/edit.vue'),
+            meta: {
+              title: '编辑产品',
+              icon: 'shopping',
+              hidden: true
+              // permission: 'B_goodsManage_edit'
+            }
+          }
+        ]
+      },
+      {
+        path: '/productManagement/productBrand',
+        redirect: '/productManagement/productBrand/list',
+        name: 'productBrand',
+        component: RouteView,
+        meta: {
+          title: '产品品牌管理',
+          icon: 'shopping'
+          // permission: 'M_goodsManage_list'
+        },
+        hideChildrenInMenu: true,
+        children: [
+          {
+            path: '/productManagement/productBrand/list',
+            name: 'productBrandList',
+            component: () => import(/* webpackChunkName: "shop" */ '@/views/productManagement/productBrand/list.vue'),
+            meta: {
+              title: '产品品牌列表',
+              icon: 'shopping',
+              hidden: true
+              // permission: 'M_goodsManage_list'
+            }
+          }
+        ]
+      },
+      {
+        path: '/productManagement/productCategory',
+        redirect: '/productManagement/productCategory/list',
+        name: 'productCategory',
+        component: RouteView,
+        meta: {
+          title: '产品类别管理',
+          icon: 'shopping'
+          // permission: 'M_goodsManage_list'
+        },
+        hideChildrenInMenu: true,
+        children: [
+          {
+            path: '/productManagement/productCategory/list',
+            name: 'productCategoryList',
+            component: () => import(/* webpackChunkName: "shop" */ '@/views/productManagement/productCategory/list.vue'),
+            meta: {
+              title: '产品类别列表',
+              icon: 'shopping',
+              hidden: true
+              // permission: 'M_goodsManage_list'
+            }
+          }
+        ]
+      }
+    ]
+  },
   // 基础资料
   {
     path: '/basicData',

+ 116 - 0
src/views/productManagement/productBrand/editModal.vue

@@ -0,0 +1,116 @@
+<template>
+  <a-modal
+    centered
+    class="productBrandEdit-modal"
+    :footer="null"
+    :maskClosable="false"
+    :title="modalTit"
+    v-model="isShow"
+    @cancle="isShow=false"
+    :width="800">
+    <!-- 表单 -->
+    <div>
+      <a-form-model
+        id="productBrandEdit-form"
+        ref="ruleForm"
+        :model="form"
+        :rules="rules"
+        :label-col="formItemLayout.labelCol"
+        :wrapper-col="formItemLayout.wrapperCol"
+      >
+        <a-form-model-item label="产品品牌名称" prop="name">
+          <a-input
+            id="productBrandEdit-name"
+            :maxLength="30"
+            v-model="form.name"
+            placeholder="请输入产品品牌名称(最多30个字符)"
+            allowClear />
+        </a-form-model-item>
+      </a-form-model>
+      <div class="btn-cont">
+        <a-button type="primary" id="product-brand-edit-modal-save" @click="handleSave">保存</a-button>
+        <a-button id="product-brand-edit-modal-back" @click="isShow = false" style="margin-left: 15px;">返回列表</a-button>
+      </div>
+    </div>
+  </a-modal>
+</template>
+
+<script>
+import { STable } from '@/components'
+export default {
+  name: 'productBrandEditModal',
+  components: { STable },
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    itemId: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  computed: {
+    modalTit () {
+      return (this.itemId ? '编辑' : '新增') + '产品品牌'
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      detailsData: null, //  品牌数据
+      formItemLayout: {
+        labelCol: { span: 6 },
+        wrapperCol: { span: 16 }
+      },
+      form: {
+        name: '', // 产品品牌名称
+      },
+      rules: {
+        name: [
+          { required: true, message: '请输入产品品牌名称', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetail(){
+      
+    },
+    //  保存
+    handleSave(){
+      
+    },
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    },
+    itemId (newValue, oldValue) {
+      if (this.isShow && newValue) {
+        this.getDetail()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .productBrandEdit-modal{
+    .ant-modal-body {
+    	padding: 40px 40px 24px;
+    }
+    .btn-cont {
+    	text-align: center;
+    	margin: 35px 0 10px;
+    }
+  }
+</style>

+ 140 - 0
src/views/productManagement/productBrand/list.vue

@@ -0,0 +1,140 @@
+<template>
+  <a-card :bordered="false" class="productBrandList-wrap">
+    <!-- 搜索条件 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+        <a-row :gutter="15">
+          <a-col :md="6" :sm="24">
+            <a-form-item label="品牌名称">
+              <a-input id="productBrandList-bundleName" v-model.trim="queryParam.bundleName" allowClear placeholder="请输入品牌名称"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="状态">
+              <v-select code="CHECK_ENABLE_STATE" id="productBrandList-state" v-model="queryParam.state" allowClear placeholder="请选择状态"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="productBrandList-refresh">查询</a-button>
+            <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="productBrandList-reset">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 操作按钮 -->
+    <div class="table-operator">
+      <a-button id="productBrandList-add" type="primary" @click="handleEdit" style="margin-top: 18px;">新增品牌</a-button>
+      <a-button id="productBrandList-import" @click="handleImport" style="margin-top: 18px;">导入品牌</a-button>
+    </div>
+    <!-- 列表 -->
+    <s-table
+      class="sTable"
+      ref="table"
+      size="default"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      bordered>
+      <!-- 状态 -->
+      <template slot="state" slot-scope="text, record">
+        <span>{{record.state == 1 ? '已启用' : '已禁用'}}</span>
+      </template>
+      <!-- 操作 -->
+      <template slot="action" slot-scope="text, record">
+        <a-button type="primary" @click="handleEdit(record)" id="productBrandList-edit-btn">编辑</a-button>
+      </template>
+    </s-table>
+    <!-- 新增/编辑产品品牌 -->
+    <product-brand-edit-modal :openModal="openModal" :itemId="itemId" @close="closeModal" />
+  </a-card>
+</template>
+
+<script>
+import moment from 'moment'
+// import { customerBundleDelayList, customerBundleExportDelay } from '@/api/FinancialManagement'
+import { STable, VSelect } from '@/components'
+import productBrandEditModal from './editModal.vue'
+export default {
+  components: { STable, VSelect, productBrandEditModal },
+  data () {
+    return {
+      labelCol: { span: 10 },
+      wrapperCol: { span: 14 },
+      queryParam: { //  查询条件
+        bundleName: '', //  品牌名称
+        state: undefined,  //  状态
+      },
+      disabled: false, //  查询、重置按钮是否可操作
+      columns: [
+        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
+        { title: '产品品牌名称', dataIndex: 'productName', align: 'center', ellipsis: true },
+        { title: '首字母', dataIndex: 'productOldNum', width: 160, align: 'center' },
+        { title: '创建时间', dataIndex: 'inventoryMoney', width: 180, align: 'center' },
+        { title: '状态', scopedSlots: { customRender: 'state' }, width: 180, align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 240, align: 'center' }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        // return customerBundleDelayList( Object.assign(parameter, this.queryParam) ).then(res => {
+        //   const data = res.data
+        //   const no = (data.pageNo - 1) * data.pageSize
+        //   for (var i = 0; i < data.list.length; i++) {
+        //     data.list[i].no = no + i + 1
+        //   }
+        //   this.disabled = false
+        //   return data
+        // })
+        const _this = this
+        return new Promise(function(resolve, reject){
+          const data = {
+            pageNo: 1,
+            pageSize: 10,
+            list: [
+              { id: '1', productNum: 'jgqp11111111111', productName: '产品1', productOldNum: 'jgqp111123545', productBrand: '箭冠品牌', productType: '产品分类1', inventoryNum: '5', inventoryMoney: '122' }
+            ]
+          }
+          const no = (data.pageNo - 1) * data.pageSize
+          for (var i = 0; i < data.list.length; i++) {
+            data.list[i].no = no + i + 1
+          }
+          _this.disabled = false
+          resolve(data)
+        })
+      },
+      openModal: false,  //  新增编辑产品品牌  弹框
+      itemId: ''  //  当前品牌id
+    }
+  },
+  methods: {
+    //  重置
+    resetSearchForm () {
+      this.queryParam.orderBundleNo = ''
+      this.queryParam.orderBundle.custMobile = ''
+      this.queryParam.bundleName = ''
+      this.queryParam.itemName = ''
+      this.oldTime = undefined
+      this.newTime = undefined
+      this.$refs.table.refresh(true)
+    },
+    //  新增/编辑
+    handleEdit(row){
+      this.itemId = row ? row.id : null
+      this.openModal = true
+    },
+    //  关闭弹框
+    closeModal(){
+      this.itemId = ''
+      this.openModal = false
+    },
+    //  导入
+    handleImport(){},
+  }
+}
+</script>
+
+<style lang="less">
+  .productBrandList-wrap{
+    
+  }
+</style>

+ 116 - 0
src/views/productManagement/productCategory/editModal.vue

@@ -0,0 +1,116 @@
+<template>
+  <a-modal
+    centered
+    class="productBrandEdit-modal"
+    :footer="null"
+    :maskClosable="false"
+    :title="modalTit"
+    v-model="isShow"
+    @cancle="isShow=false"
+    :width="800">
+    <!-- 表单 -->
+    <div>
+      <a-form-model
+        id="productBrandEdit-form"
+        ref="ruleForm"
+        :model="form"
+        :rules="rules"
+        :label-col="formItemLayout.labelCol"
+        :wrapper-col="formItemLayout.wrapperCol"
+      >
+        <a-form-model-item label="产品品牌名称" prop="name">
+          <a-input
+            id="productBrandEdit-name"
+            :maxLength="30"
+            v-model="form.name"
+            placeholder="请输入产品品牌名称(最多30个字符)"
+            allowClear />
+        </a-form-model-item>
+      </a-form-model>
+      <div class="btn-cont">
+        <a-button type="primary" id="product-brand-edit-modal-save" @click="handleSave">保存</a-button>
+        <a-button id="product-brand-edit-modal-back" @click="isShow = false" style="margin-left: 15px;">返回列表</a-button>
+      </div>
+    </div>
+  </a-modal>
+</template>
+
+<script>
+import { STable } from '@/components'
+export default {
+  name: 'productBrandEditModal',
+  components: { STable },
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    itemId: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  computed: {
+    modalTit () {
+      return (this.itemId ? '编辑' : '新增') + '产品品牌'
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      detailsData: null, //  品牌数据
+      formItemLayout: {
+        labelCol: { span: 6 },
+        wrapperCol: { span: 16 }
+      },
+      form: {
+        name: '', // 产品品牌名称
+      },
+      rules: {
+        name: [
+          { required: true, message: '请输入产品品牌名称', trigger: 'blur' }
+        ],
+      }
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetail(){
+      
+    },
+    //  保存
+    handleSave(){
+      
+    },
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    },
+    itemId (newValue, oldValue) {
+      if (this.isShow && newValue) {
+        this.getDetail()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .productBrandEdit-modal{
+    .ant-modal-body {
+    	padding: 40px 40px 24px;
+    }
+    .btn-cont {
+    	text-align: center;
+    	margin: 35px 0 10px;
+    }
+  }
+</style>

+ 245 - 0
src/views/productManagement/productCategory/list.vue

@@ -0,0 +1,245 @@
+<template>
+  <a-card :bordered="false" class="productCategoryList-wrap">
+    <!-- 操作按钮 -->
+    <div class="table-operator">
+      <a-button id="productCategoryList-add" type="primary" @click="handleAdd" style="margin-top: 18px;">新增一级分类</a-button>
+    </div>
+    <!-- 列表 -->
+    <s-table
+      class="sTable"
+      ref="table"
+      size="default"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      :showPagination="false"
+      :defaultExpandedRowKeys="defaultExpandedRowKeys"
+      bordered>
+      <!-- 操作 -->
+      <template slot="action" slot-scope="text, record">
+        <a-button
+          type="link"
+          size="small"
+          icon="plus"
+          class="btn-add-s"
+          id="productCategory-addSubItem"
+          @click="handleAdd(text)">新增子级</a-button>
+        <a-button
+          v-if="record.pid != 0"
+          type="link"
+          size="small"
+          icon="edit"
+          class="btn-edit-s"
+          id="productCategory-edit"
+          @click="handleEdit(text)">编辑</a-button>
+        <a-button
+          v-if="record.pid != 0"
+          type="link"
+          size="small"
+          icon="delete"
+          class="btn-del-s"
+          id="productCategory-del"
+          @click="handleDel(text)">删除</a-button>
+      </template>
+    </s-table>
+    <!-- 新增/编辑产品类别 -->
+    <a-modal
+      class="productCategoryList-modal"
+      centered
+      :title="title"
+      :visible="visible"
+      :footer="null"
+      :closable="true"
+      @cancel="onCancel"
+      :width="800">
+      <!-- 表单 -->
+      <a-form-model ref="ruleForm" :model="form" :rules="rules" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+        <a-form-model-item label="产品类别名称" prop="name">
+          <a-input v-model.trim="form.name" id="productCategory-itemName" :maxLength="30" placeholder="请输入产品类别名称(最多30个字符)" />
+        </a-form-model-item>
+        <a-form-model-item class="btn-cont" :labelCol="{span: 0}" :wrapperCol="{span: 24}">
+          <a-button type="primary" id="productCategory-save" @click="onSubmit">保存</a-button>
+          <a-button class="cancel" id="productCategory-cancel" @click="onCancel">取消</a-button>
+        </a-form-model-item>
+      </a-form-model>
+    </a-modal>
+  </a-card>
+</template>
+
+<script>
+import moment from 'moment'
+// import { customerBundleDelayList, customerBundleExportDelay } from '@/api/FinancialManagement'
+import { STable, VSelect } from '@/components'
+import productCategoryEditModal from './editModal.vue'
+export default {
+  components: { STable, VSelect, productCategoryEditModal },
+  data () {
+    return {
+      formItemLayout: {
+        labelCol: { span: 6 },
+        wrapperCol: { span: 16 }
+      },
+      columns: [
+        { title: '组织机构名称', dataIndex: 'name', width: 200, align: 'left' },
+        { title: '创建时间', dataIndex: 'createDate', width: 150, align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 150, align: 'center' }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        // return customerBundleDelayList( Object.assign(parameter, this.queryParam) ).then(res => {
+        //   const data = res.data
+        //   const no = (data.pageNo - 1) * data.pageSize
+        //   for (var i = 0; i < data.list.length; i++) {
+        //     data.list[i].no = no + i + 1
+        //   }
+        //   this.disabled = false
+        //   return data
+        // })
+        // return findOrgTree().then(res => {
+        //   //  递归去除空children
+        //   this.recursionFun(res.data)
+        //   this.defaultExpandedRowKeys[0] = res.data[0].id
+        //   return res.data
+        // })
+        const _this = this
+        return new Promise(function(resolve, reject){
+          const data = {
+            pageNo: 1,
+            pageSize: 10,
+            list: [
+              { id: '1', productNum: 'jgqp11111111111', productName: '产品1', productOldNum: 'jgqp111123545', productBrand: '箭冠品牌', productType: '产品分类1', inventoryNum: '5', inventoryMoney: '122' }
+            ]
+          }
+          const no = (data.pageNo - 1) * data.pageSize
+          for (var i = 0; i < data.list.length; i++) {
+            data.list[i].no = no + i + 1
+          }
+          _this.disabled = false
+          resolve(data)
+        })
+      },
+      title: '新增', //  对话框标题
+      visible: false, //  对话框是否可见
+      form: { //  新增编辑  组织机构
+        name: ''
+      },
+      rules: { //  表单校验规则
+        name: [{ required: true, message: '请输入组织机构名称', trigger: 'blur' }]
+      },
+      nowId: '', //  当前操作的数据id
+      nowPid: '', //  当前操作的数据上级id
+      defaultExpandedRowKeys: [] //  树形数据默认展开项
+    }
+  },
+  methods: {
+    //  新增子级
+    handleAdd (item) {
+      this.nowId = ''
+      this.form.name = ''
+      if (item) { //  子级
+        this.nowPid = item.id
+      } else { //  最高级
+        this.nowPid = ''
+      }
+      this.title = '新增'
+      this.visible = true
+    },
+    //  编辑
+    handleEdit (item) {
+      this.nowId = item.id
+      this.nowPid = item.pid
+      this.title = '编辑'
+      this.form.name = item.name
+      this.visible = true
+    },
+    //  保存
+    onSubmit () {
+      const _this = this
+      _this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          const formData = JSON.parse(JSON.stringify(_this.form))
+          formData.id = _this.nowId
+          formData.pid = _this.nowPid
+          saveAtorg(formData).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.$refs.table.refresh(true)
+              _this.visible = false
+            }
+          })
+        } else {
+          return false
+        }
+      })
+    },
+    //  关闭对话框
+    onCancel () {
+      this.$refs.ruleForm.resetFields()
+      this.visible = false
+    },
+    //  删除
+    handleDel (item) {
+      const _this = this
+      _this.nowId = item.id
+      _this.$confirm({
+        title: '提示',
+        centered: true,
+        content: '删除后原数据不可恢复,是否删除?',
+        onOk () {
+          delAtorg({ id: _this.nowId }).then(res => {
+            if (res.status == 200) {
+              _this.$message.success(res.message)
+              _this.$refs.table.refresh()
+            }
+          })
+        }
+      })
+    },
+    //  递归函数
+    recursionFun (data) {
+      if (data) {
+        data.map((item, index) => {
+          if (item.children && item.children.length == 0) {
+            delete item.children
+          } else {
+            this.recursionFun(item.children)
+          }
+        })
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .productCategoryList-wrap{
+    // 表格
+    .s-table{
+      .btn-edit-s{
+        color: #1891ff;
+        margin: 0 5px;
+      }
+      .btn-del-s{
+        color: #ff4d4f;
+      }
+      .btn-edit-s.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .btn-edit-s.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){
+        color: #1891ff;
+        border-color: #1891ff;
+      }
+      .btn-del-s.ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .btn-del-s.ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger){
+        color: #ff4d4f;
+        border-color: #ff4d4f;
+      }
+    }
+  }
+  // 弹框
+  .productCategoryList-modal{
+    .btn-cont{
+      text-align: center;
+      .cancel {
+        margin-left: 50px;
+      }
+    }
+  }
+</style>

+ 177 - 0
src/views/productManagement/productInfo/detailModal.vue

@@ -0,0 +1,177 @@
+<template>
+  <a-modal
+    centered
+    class="productInfoDetail-modal"
+    :footer="null"
+    :maskClosable="false"
+    :title="modalTit"
+    v-model="isShow"
+    @cancle="isShow=false"
+    width="80%">
+    <!-- 产品详情 -->
+    <div>
+    <!-- <div v-if="detailsData"> -->
+      <a-row :gutter="35">
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">产品名称:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">产品编码:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">原厂编码:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+      </a-row>
+      <a-row :gutter="35">
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">基本单位:</p>
+          <p class="item-main">陕西省西安市未央区凤城八路</p>
+          <!-- <p class="item-main">{{ detailsData.provinceName }}{{ detailsData.cityName }}{{ detailsData.districtName }}{{ detailsData.address }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">产品品牌:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">产品类别:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+      </a-row>
+      <a-row :gutter="35">
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">经销批发价:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">终端价:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+        <a-col :span="8" class="item-cont">
+          <p class="item-label">车主价:</p>
+          <p class="item-main">名称思密达</p>
+          <!-- <p class="item-main">{{ detailsData.name }}</p> -->
+        </a-col>
+      </a-row>
+      <div class="btn-cont"><a-button id="product-management-detail-modal-back" @click="isShow = false">返回列表</a-button></div>
+    </div>
+  </a-modal>
+</template>
+
+<script>
+import { STable } from '@/components'
+export default {
+  name: 'productInfoDetailModal',
+  components: { STable },
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    itemId: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  computed: {
+    modalTit () {
+      return '产品详情'
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      detailsData: null, //  网点数据
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetail(){
+      
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    },
+    itemId (newValue, oldValue) {
+      if (this.isShow && newValue) {
+        this.getDetail()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .productInfoDetail-modal{
+    .ant-modal-body {
+    	padding: 40px 40px 24px;
+    }
+    .item-cont {
+    	margin-bottom: 15px;
+    	display: flex;
+    	.item-label {
+    		width: 115px;
+    		font-size: 14px;
+    		color: rgba(0, 0, 0, 0.85);
+    		flex-shrink: 0;
+    	}
+    	.item-main {
+    		flex-grow: 1;
+        word-break: break-all;
+    		.wd-icon {
+    			display: block;
+    		}
+    	}
+    	.guidance-con {
+    		border: 1px dashed #e8e8e8;
+    		border-radius: 6px;
+    		padding: 20px;
+    		img {
+    			max-width: 100%;
+    		}
+    	}
+    	.period-price-con {
+    		border-bottom: 1px solid #e8e8e8;
+    	}
+    	.item-period {
+    		display: flex;
+    		align-items: center;
+    		justify-content: space-evenly;
+    		flex-grow: 1;
+    		border: 1px solid #e8e8e8;
+    		border-width: 1px 1px 0;
+    		text-align: center;
+    		.period,
+    		.period-price {
+    			padding: 5px 0;
+    			border-right: 1px solid #e8e8e8;
+    		}
+    		.period-price:last-child {
+    			border-right: none;
+    		}
+    	}
+    }
+    .btn-cont {
+    	text-align: center;
+    	margin: 35px 0 10px;
+    }
+  }
+</style>

+ 298 - 0
src/views/productManagement/productInfo/edit.vue

@@ -0,0 +1,298 @@
+<template>
+  <a-card :bordered="false" class="productInfoEdit-table-page-wrapper">
+    <a-form-model
+      id="productInfoEdit-form"
+      ref="ruleForm"
+      :model="form"
+      :rules="rules"
+      :label-col="formItemLayout.labelCol"
+      :wrapper-col="formItemLayout.wrapperCol"
+    >
+      <a-form-model-item label="产品名称" prop="name">
+        <a-input
+          id="productInfoEdit-name"
+          :maxLength="30"
+          v-model="form.name"
+          placeholder="请输入产品名称(最多30个字符)"
+          allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="产品编码" prop="contactName">
+        <a-input
+          id="productInfoEdit-contactName"
+          :maxLength="30"
+          v-model="form.contactName"
+          placeholder="请输入产品编码(最多30个字符)"
+          allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="原厂编码" prop="contactPhone">
+        <a-input
+          id="productInfoEdit-contactPhone"
+          :maxLength="30"
+          v-model="form.contactPhone"
+          placeholder="请输入原厂编码(最多30个字符)"
+          allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="基本单位" prop="contactPhone">
+        <a-input
+          id="productInfoEdit-contactPhone"
+          :maxLength="30"
+          v-model="form.contactPhone"
+          placeholder="请输入基本单位(最多30个字符)"
+          allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="辅助单位" prop="contactPhone">
+        <a-input
+          id="productInfoEdit-contactPhone"
+          :maxLength="30"
+          v-model="form.contactPhone"
+          placeholder="请输入辅助单位(最多30个字符)"
+          allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="产品品牌" prop="contactPhone">
+        <a-select placeholder="请选择" allowClear v-model="form.dataSourceNo" :showSearch="true" option-filter-prop="children" :filter-option="filterOption">
+        	<a-select-option v-for="item in brandData" :key="item.salesChannelNo" :value="item.salesChannelNo">{{ item.salesChannelName }}</a-select-option>
+        </a-select>
+      </a-form-model-item>
+      <a-form-model-item label="产品类别" required style="margin: 0;">
+        <a-row :gutter="15">
+          <!-- 产品类别 -->
+          <a-col span="8">
+            <a-form-model-item prop="provinceCode">
+              <a-select id="productInfoEdit-provinceCode" @change="getCityList" v-model="form.provinceCode" placeholder="一级分类">
+                <a-select-option v-for="item in addrProvinceList" :value="item.id" :key="item.id + 'a'">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="8">
+            <a-form-model-item prop="cityCode">
+              <a-select id="productInfoEdit-cityCode" @change="getAreaList" v-model="form.cityCode" placeholder="二级分类">
+                <a-select-option v-for="item in addrCityList" :value="item.id" :key="item.id + 'b'">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col span="8">
+            <a-form-model-item prop="districtCode">
+              <a-select id="productInfoEdit-districtCode" @change="areaCharged" v-model="form.districtCode" placeholder="三级分类">
+                <a-select-option v-for="item in addrDistrictList" :value="item.id" :key="item.id + 'c'">{{ item.name }}</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model-item>
+      <a-form-model-item label="经销批发价" prop="name">
+        <a-input-number
+          id="productInfoEdit-districtCode"
+          v-model="form.goldNum"
+          :min="0"
+          :max="999999"
+          :precision="0"
+          style="width: 90%;margin-right: 5px;"
+          placeholder="请输入经销批发价(0~999999)"
+          allowClear /><span>元</span>
+      </a-form-model-item>
+      <a-form-model-item label="终端价(原售价)" prop="name">
+        <a-input-number
+          id="productInfoEdit-districtCode"
+          v-model="form.goldNum"
+          :min="0"
+          :max="999999"
+          :precision="0"
+          style="width: 90%;margin-right: 5px;"
+          placeholder="请输入终端价(原售价)(0~999999)"
+          allowClear /><span>元</span>
+      </a-form-model-item>
+      <a-form-model-item label="车主价" prop="name">
+        <a-input-number
+          id="productInfoEdit-districtCode"
+          v-model="form.goldNum"
+          :min="0"
+          :max="999999"
+          :precision="0"
+          style="width: 90%;margin-right: 5px;"
+          placeholder="请输入车主价(0~999999)"
+          allowClear /><span>元</span>
+      </a-form-model-item>
+      <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }" style="text-align: center;">
+        <a-button type="primary" @click="handleSubmit" id="productInfoEdit-btn-submit">保存</a-button>
+        <a-button @click="goBack" style="margin-left: 15px" id="productInfoEdit-btn-back">返回列表</a-button>
+      </a-form-model-item>
+    </a-form-model>
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+// import { goodsSave, goodsFind } from '@/api/goods'
+export default {
+  name: 'productInfoEdit',
+  components: { STable, VSelect },
+  data () {
+    return {
+      formItemLayout: {
+        labelCol: { span: 4 },
+        wrapperCol: { span: 16 }
+      },
+      form: {
+        name: '', // 供应商名称
+        provinceCode: undefined, //  省
+        provinceName: '',
+        cityCode: undefined, // 市
+        cityName: '',
+        districtCode: undefined, // 区
+        districtName: '',
+        address: '', //  详细地址
+        contactName: '',  //  联系人
+        contactPhone: '',  //  联系电话
+        remarks: '',  //  主营内容
+        state: 0  //  启禁用
+      },
+      rules: {
+        name: [
+          { required: true, message: '请输入供应商名称', trigger: 'blur' }
+        ],
+        provinceCode: [
+          { required: true, message: '请选择省', trigger: 'change' }
+        ],
+        cityCode: [
+          { required: true, message: '请选择市', trigger: 'change' }
+        ],
+        districtCode: [
+          { required: true, message: '请选择区/县', trigger: 'change' }
+        ],
+        address: [
+          { required: true, message: '请输入详细地址', trigger: 'blur' }
+        ],
+        contactName: [
+          { required: true, message: '请输入联系人', trigger: 'blur' }
+        ],
+        contactPhone: [
+          { required: true, message: '请输入联系人电话', trigger: 'blur' }
+        ],
+        state: [
+          { required: true, message: '请选择状态', trigger: 'change' }
+        ]
+      },
+      addrProvinceList: [], //  省下拉
+      addrCityList: [], //  市下拉
+      addrDistrictList: [], //  区下拉
+      brandData: [],  //  下拉数据
+    }
+  },
+  computed: {
+    isEdit () {
+      return this.$route.name === 'productInfoEdit'
+    }
+  },
+  methods: {
+    //  获取供应商信息
+    getGoodsDetail () {
+      // goodsFind({ id: this.$route.params.id }).then(res => {
+      //   if (res.status == 200) {
+      //     this.form = Object.assign(this.form, res.data)
+      //   }
+      // })
+    },
+    //  保存
+    handleSubmit (e) {
+      e.preventDefault()
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          const form = values.form
+          form.desc = _this.form.desc
+          form.id = this.isEdit ? this.$route.params.id : null
+          console.log(form,'-----提交信息')
+          // goodsSave(form).then(res => {
+          //   if (res.status == 200) {
+          //     _this.$message.success(res.message)
+          //     setTimeout(() => {
+          //       _this.$router.push({ path: '/shop/goods/list' })
+          //     }, 1000)
+          //   }
+          // })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    },
+    filterOption(input, option) {
+    	return (
+    		option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+    	)
+    },
+    //  返回
+    goBack () {
+      this.$router.push({ path: '/productManagement/productInfo/list' })
+    },
+    // 获取省列表'
+    getProvinceList () {
+      getProvince().then(res => {
+        if (res.status == 200) {
+          this.addrProvinceList = res.data || []
+        } else {
+          this.addrProvinceList = []
+        }
+      })
+    },
+    // 获取城市列表
+    getCityList (val) {
+      this.addrCityList = []
+      this.addrDistrictList = []
+      this.form.cityCode = undefined
+      this.form.districtCode = undefined
+      this.form.address = ''
+      this.getCityListRequest(val)
+    },
+    getCityListRequest (val) {
+      getCityByPro({
+        id: val
+      }).then(res => {
+        if (res.status == 200) {
+          this.addrCityList = res.data || []
+        } else {
+          this.addrCityList = []
+        }
+      })
+    },
+    // 获取区县列表
+    getAreaList (val) {
+      this.addrDistrictList = []
+      this.form.districtCode = undefined
+      this.form.address = ''
+      this.getAreaListRequest(val)
+    },
+    getAreaListRequest (val) {
+      getDistrictByCity({
+        id: val
+      }).then(res => {
+        if (res.status == 200) {
+          this.addrDistrictList = res.data || []
+        } else {
+          this.addrDistrictList = []
+        }
+      })
+    },
+    // 区县变更
+    areaCharged (val) {
+      this.form.address = ''
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {
+      // vm.getGoodsType()
+      // vm.getPartnerQueryList()
+      vm.$refs.ruleForm.resetFields()
+      if (vm.isEdit) { //  编辑页
+        vm.getGoodsDetail()
+      }
+    })
+  }
+}
+</script>
+
+<style lang="less">
+  .productInfoEdit-table-page-wrapper{
+    
+  }
+</style>

+ 251 - 0
src/views/productManagement/productInfo/list.vue

@@ -0,0 +1,251 @@
+<template>
+  <a-card :bordered="false" class="productInfoList-wrap">
+    <!-- 搜索条件 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+        <a-row :gutter="15">
+          <a-col :md="6" :sm="24">
+            <a-form-item label="产品编码">
+              <a-input id="productInfoList-bundleName" v-model.trim="queryParam.bundleName" allowClear placeholder="请输入产品编码"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="产品名称">
+              <a-input id="productInfoList-bundleName" v-model.trim="queryParam.bundleName" allowClear placeholder="请输入产品名称"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="原厂编码">
+              <a-input id="productInfoList-bundleName" v-model.trim="queryParam.bundleName" allowClear placeholder="请输入原厂编码"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="产品品牌">
+            	<a-select placeholder="请选择" id="productInfoList-state" allowClear v-model="queryParam.dataSourceNo" :showSearch="true" option-filter-prop="children" :filter-option="filterOption">
+            		<a-select-option v-for="item in brandData" :key="item.salesChannelNo" :value="item.salesChannelNo">{{ item.salesChannelName }}</a-select-option>
+            	</a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="产品类别">
+              <a-cascader :options="typeData" id="productInfoList-state" placeholder="请选择产品类别" allowClear v-model="queryParam.brand" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="状态">
+              <v-select code="CHECK_ENABLE_STATE" id="productInfoList-state" v-model="queryParam.state" allowClear placeholder="请选择状态"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="产品来源">
+              <v-select code="CHECK_ENABLE_STATE" id="productInfoList-state" v-model="queryParam.state" allowClear placeholder="请选择产品来源"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="创建时间">
+              <a-range-picker
+                  style="width:100%"
+                  id="customerManagementList-creatTime"
+                  :disabledDate="disabledDate"
+                  v-model="creatTime"
+                  :format="dateFormat"
+                  :placeholder="['开始时间', '结束时间']" />
+              </a-form-item>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-button type="primary" @click="$refs.table.refresh(true)" :disabled="disabled" id="productInfoList-refresh">查询</a-button>
+            <a-button style="margin-left: 8px" @click="resetSearchForm" :disabled="disabled" id="productInfoList-reset">重置</a-button>
+            <a-button style="margin-left: 8px" type="danger" @click="handleExport" :disabled="disabled" :loading="exportLoading" id="inventoryQueryList-export">导出</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 操作按钮 -->
+    <div class="table-operator">
+      <a-button id="productInfoList-add" type="primary" @click="handleAdd" style="margin-top: 18px;">新增产品</a-button>
+      <a-button id="productInfoList-import" @click="handleImport" style="margin: 18px 15px 0;">批量导入产品</a-button>
+      <a-button id="productInfoList-state" @click="handleEditState" style="margin-top: 18px;">批量修改状态</a-button>
+    </div>
+    <!-- 列表 -->
+    <s-table
+      class="sTable"
+      ref="table"
+      size="default"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      bordered>
+      <!-- 状态 -->
+      <template slot="state" slot-scope="text, record">
+        <span>{{record.state == 1 ? '已启用' : '已禁用'}}</span>
+      </template>
+      <!-- 操作 -->
+      <template slot="action" slot-scope="text, record">
+        <a-button type="primary" @click="handleEdit(record)" id="productInfoList-edit-btn">编辑</a-button>
+        <a-button @click="handleDetail(record)" id="productInfoList-detail-btn" style="margin-left: 15px;">详情</a-button>
+      </template>
+    </s-table>
+    <!-- 产品详情 -->
+    <product-info-detail-modal :openModal="openModal" :itemId="itemId" @close="closeModal" />
+  </a-card>
+</template>
+
+<script>
+import moment from 'moment'
+// import { customerBundleDelayList, customerBundleExportDelay } from '@/api/FinancialManagement'
+import { STable, VSelect } from '@/components'
+import productInfoDetailModal from './detailModal.vue'
+export default {
+  components: { STable, VSelect, productInfoDetailModal },
+  data () {
+    return {
+      labelCol: { span: 10 },
+      wrapperCol: { span: 14 },
+      queryParam: { //  查询条件
+        bundleName: '', //  供应商名称
+        state: undefined,  //  状态
+      },
+      disabled: false, //  查询、重置按钮是否可操作
+      exportLoading: false, // 导出loading
+      brandData: [],  //  下拉数据
+      typeData: [],  //  产品类别  下拉数据
+      dateFormat: 'YYYY-MM-DD',
+      creatTime: [],  //  创建时间
+      columns: [
+        { title: '序号', dataIndex: 'no', width: 70, align: 'center' },
+        { title: '产品编码', dataIndex: 'productName', width: 200, align: 'center' },
+        { title: '产品名称', dataIndex: 'productOldNum', width: 160, align: 'center', ellipsis: true },
+        { title: '原厂编码', dataIndex: 'productBrand', width: 200, align: 'center' },
+        { title: '产品品牌', dataIndex: 'productType', width: 200, align: 'center' },
+        { title: '产品类别', dataIndex: 'inventoryNum', width: 180, align: 'center' },
+        { title: '终端价(售价)', dataIndex: 'inventoryMoney', width: 180, align: 'center' },
+        { title: '创建时间', dataIndex: 'createTime', width: 180, align: 'center' },
+        { title: '状态', scopedSlots: { customRender: 'state' }, width: 180, align: 'center' },
+        { title: '操作', scopedSlots: { customRender: 'action' }, width: 240, align: 'center' }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        this.disabled = true
+        // return customerBundleDelayList( Object.assign(parameter, this.queryParam) ).then(res => {
+        //   const data = res.data
+        //   const no = (data.pageNo - 1) * data.pageSize
+        //   for (var i = 0; i < data.list.length; i++) {
+        //     data.list[i].no = no + i + 1
+        //   }
+        //   this.disabled = false
+        //   return data
+        // })
+        const _this = this
+        return new Promise(function(resolve, reject){
+          const data = {
+            pageNo: 1,
+            pageSize: 10,
+            list: [
+              { id: '1', productNum: 'jgqp11111111111', productName: '产品1', productOldNum: 'jgqp111123545', productBrand: '箭冠品牌', productType: '产品分类1', inventoryNum: '5', inventoryMoney: '122' }
+            ]
+          }
+          const no = (data.pageNo - 1) * data.pageSize
+          for (var i = 0; i < data.list.length; i++) {
+            data.list[i].no = no + i + 1
+          }
+          _this.disabled = false
+          resolve(data)
+        })
+      },
+      openModal: false,  //  查看客户详情  弹框
+      itemId: ''  //  当前产品id
+    }
+  },
+  methods: {
+    // 不可选日期
+    disabledDate (date, dateStrings) {
+      return date && date.valueOf() > Date.now()
+    },
+    //  重置
+    resetSearchForm () {
+      this.queryParam.orderBundleNo = ''
+      this.queryParam.orderBundle.custMobile = ''
+      this.queryParam.bundleName = ''
+      this.queryParam.itemName = ''
+      this.oldTime = undefined
+      this.newTime = undefined
+      this.$refs.table.refresh(true)
+    },
+    //  新增
+    handleAdd(){
+      this.$router.push({ path: '/productManagement/productInfo/add' })
+    },
+    //  编辑
+    handleEdit(row){
+      this.$router.push({ path: `/productManagement/productInfo/edit/${row.id}` })
+    },
+    //  批量导入
+    handleImport(){
+      
+    },
+    //  批量修改
+    handleEditState(){},
+    filterOption(input, option) {
+    	return (
+    		option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+    	)
+    },
+    //  详情
+    handleDetail(row){
+      this.itemId = row.id
+      this.openModal = true
+    },
+    //  关闭弹框
+    closeModal(){
+      this.itemId = ''
+      this.openModal = false
+    },
+    //  导出
+    handleExport () {
+      const params = this.queryParam
+      if (this.oldTime && this.oldTime.length > 0) {
+        params.beginOldExpiryDate = moment(this.oldTime[0]).format('YYYY-MM-DD')
+        params.endOldExpirydDate = moment(this.oldTime[1]).format('YYYY-MM-DD')
+      } else {
+        params.beginOldExpiryDate = ''
+        params.endOldExpirydDate = ''
+      }
+      if (this.newTime && this.newTime.length > 0) {
+        params.beginDate = moment(this.newTime[0]).format('YYYY-MM-DD')
+        params.endDate = moment(this.newTime[1]).format('YYYY-MM-DD')
+      } else {
+        params.beginDate = ''
+        params.endDate = ''
+      }
+      this.exportLoading = true
+      customerBundleExportDelay(params).then(res => {
+        this.exportLoading = false
+        this.download(res)
+      })
+    },
+    download (data) {
+      if (!data) { return }
+      const url = window.URL.createObjectURL(new Blob([data]))
+      const link = document.createElement('a')
+      link.style.display = 'none'
+      link.href = url
+      const a = moment().format('YYYYMMDDHHmmss')
+      const fname = '产品信息表' + a
+      link.setAttribute('download', fname + '.xlsx')
+      document.body.appendChild(link)
+      link.click()
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .productInfoList-wrap{
+    .sTable{
+      table{
+        width: auto;
+      }
+    }
+  }
+</style>

+ 1 - 1
src/views/salesManagement/customerManagement/detailModal.vue

@@ -8,7 +8,7 @@
     v-model="isShow"
     @cancle="isShow=false"
     width="80%">
-    <!-- 库存详情 -->
+    <!-- 客户详情 -->
     <div>
     <!-- <div v-if="detailsData"> -->
       <a-row :gutter="35">

+ 1 - 1
src/views/salesManagement/customerManagement/list.vue

@@ -17,7 +17,7 @@
             </a-form-item>
           </a-col>
           <a-col :md="6" :sm="24">
-            <a-form-item label="客户名称" :label-col="{ span:7 }" :wrapper-col="{ span:17}">
+            <a-form-item label="客户名称">
             	<a-select placeholder="请选择" allowClear v-model="queryParam.dataSourceNo" :showSearch="true" option-filter-prop="children" :filter-option="filterOption">
             		<a-select-option v-for="item in brandData" :key="item.salesChannelNo" :value="item.salesChannelNo">{{ item.salesChannelName }}</a-select-option>
             	</a-select>

+ 2 - 2
vue.config.js

@@ -108,8 +108,8 @@ const vueConfig = {
     // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        target: 'http://192.168.0.12:8503/qpls-md',
-        // target: 'http://it.test.zyucgj.com/zyit',
+        // target: 'http://192.168.0.12:8503/qpls-md',
+        target: 'http://it.test.zyucgj.com/zyit',
         // target: 'https://it.test.qiubcar.com/zyit',
         ws: false,
         changeOrigin: true,