|
@@ -4,46 +4,30 @@
|
|
|
<div ref="tableSearch" class="table-page-search-wrapper">
|
|
|
<a-form layout="inline" @keyup.enter.native="searchForm">
|
|
|
<a-row :gutter="15">
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
+ <a-col :md="8" :sm="24">
|
|
|
<a-form-item label="产品编码">
|
|
|
<a-input id="shoppingCar-code" v-model.trim="queryParam.code" allowClear placeholder="请输入产品编码"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
+ <a-col :md="8" :sm="24">
|
|
|
<a-form-item label="产品名称">
|
|
|
<a-input id="shoppingCar-name" v-model.trim="queryParam.name" allowClear placeholder="请输入产品名称"/>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
- <a-form-item label="原厂编码">
|
|
|
- <a-input id="shoppingCar-origCode" v-model.trim="queryParam.origCode" allowClear placeholder="请输入原厂编码"/>
|
|
|
+ <a-col :md="8" :sm="24">
|
|
|
+ <a-form-item label="产品分类">
|
|
|
+ <ProductType id="shoppingCar-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :md="8" :sm="24">
|
|
|
+ <a-form-item label="产品品牌">
|
|
|
+ <ProductBrand id="shoppingCar-productBrandSn" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></ProductBrand>
|
|
|
+ </a-select>
|
|
|
</a-form-item>
|
|
|
</a-col>
|
|
|
- <template v-if="advanced">
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
- <a-form-item label="产品品牌">
|
|
|
- <ProductBrand id="shoppingCar-productBrandSn" placeholder="请选择产品品牌" v-model="queryParam.productBrandSn"></ProductBrand>
|
|
|
- </a-select>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <!-- <a-col :md="6" :sm="24">
|
|
|
- <a-form-item label="产品分类">
|
|
|
- <ProductType id="shoppingCar-productType" placeholder="请选择产品分类" :isDealer="true" @change="changeProductType" v-model="productType"></ProductType>
|
|
|
- </a-form-item>
|
|
|
- </a-col> -->
|
|
|
- <a-col :md="6" :sm="24">
|
|
|
- <a-form-item label="状态">
|
|
|
- <v-select code="ENABLE_FLAG" id="shoppingCar-enabledFlag" v-model="queryParam.enabledFlag" allowClear placeholder="请选择状态"></v-select>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- </template>
|
|
|
<a-col :md="6" :sm="24" style="margin-bottom: 10px;">
|
|
|
<a-button type="primary" @click="searchForm" :disabled="disabled" id="shoppingCar-refresh">查询</a-button>
|
|
|
<a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="shoppingCar-reset">重置</a-button>
|
|
|
- <a @click="advanced=!advanced" style="margin-left: 5px">
|
|
|
- {{ advanced ? '收起' : '展开' }}
|
|
|
- <a-icon :type="advanced ? 'up' : 'down'"/>
|
|
|
- </a>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
</a-form>
|
|
@@ -52,48 +36,14 @@
|
|
|
<div class="table-operator" v-if="$hasPermissions('B_JgProduct_enable')">
|
|
|
<a-row :gutter="16">
|
|
|
<a-col class="gutter-row" :span="12">
|
|
|
- <a-dropdown>
|
|
|
- <a-menu slot="overlay" @click="handleMenuClick">
|
|
|
- <a-menu-item key="1"> 批量启用</a-menu-item>
|
|
|
- <a-menu-item key="2"> 批量禁用</a-menu-item>
|
|
|
- </a-menu>
|
|
|
- <a-button ghost type="danger"> 批量操作 <a-icon type="down" /> </a-button>
|
|
|
- </a-dropdown>
|
|
|
+ <a-button type="primary" ghost v-if="type=='globalBtn'" @click="deleteMore">
|
|
|
+ 批量删除
|
|
|
+ </a-button>
|
|
|
+ <a-button type="primary" ghost v-else>
|
|
|
+ 批量添加
|
|
|
+ </a-button>
|
|
|
<span v-if="rowSelectionInfo&&rowSelectionInfo.selectedRowKeys">已选 {{ rowSelectionInfo.selectedRowKeys.length }} 项</span>
|
|
|
</a-col>
|
|
|
- <a-col class="gutter-row" :span="12">
|
|
|
- <div class="setTableList">
|
|
|
- <span @click="iconShowFlag=!iconShowFlag">列表显示配置</span>
|
|
|
- <a-icon :type="iconShowFlag?'up':'down'" :style="{ color: '#d5d5d5' }" @click="iconShowFlag=!iconShowFlag"/>
|
|
|
- <div class="setTableList-box" v-show="iconShowFlag">
|
|
|
- <a-checkbox-group @change="onChangeList" :value="chooseShowList">
|
|
|
- <div>
|
|
|
- <a-checkbox value="A">
|
|
|
- 省级价
|
|
|
- </a-checkbox>
|
|
|
- </div>
|
|
|
- <div><a-checkbox value="B">
|
|
|
- 市级建议价
|
|
|
- </a-checkbox></div>
|
|
|
- <div><a-checkbox value="C">
|
|
|
- 特约建议价
|
|
|
- </a-checkbox></div>
|
|
|
- <div><a-checkbox value="D">
|
|
|
- 建议终端价
|
|
|
- </a-checkbox></div>
|
|
|
- <div> <a-checkbox value="E">
|
|
|
- 建议车主价
|
|
|
- </a-checkbox></div>
|
|
|
- <div> <a-checkbox value="F">
|
|
|
- 自定义终端价
|
|
|
- </a-checkbox></div>
|
|
|
- <div><a-checkbox value="G">
|
|
|
- 自定义车主价
|
|
|
- </a-checkbox></div>
|
|
|
- </a-checkbox-group>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </a-col>
|
|
|
</a-row>
|
|
|
</div>
|
|
|
<!-- 列表 -->
|
|
@@ -111,49 +61,11 @@
|
|
|
:scroll="{ y: tableHeight }"
|
|
|
:defaultLoadData="false"
|
|
|
bordered>
|
|
|
- <!-- 产品图片 -->
|
|
|
- <template slot="imageUrl" slot-scope="text, record">
|
|
|
- <div v-if="record.productPicList && record.productPicList.length>0">
|
|
|
- <img :src="record.productPicList[0].imageUrl+'?x-oss-process=image/resize,h_30,m_lfit' || ''" width="30" height="30" class="imageUrl" @click="inited(record.productPicList)" />
|
|
|
- </div>
|
|
|
- <span v-else>--</span>
|
|
|
- </template>
|
|
|
- <!-- 产品分类 -->
|
|
|
- <template slot="productType" slot-scope="text, record">
|
|
|
- <span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
|
|
|
- <span v-else>--</span>
|
|
|
- </template>
|
|
|
- <!-- 状态 -->
|
|
|
- <template slot="enabledFlag" slot-scope="text, record">
|
|
|
- <a-switch
|
|
|
- checkedChildren="启用"
|
|
|
- unCheckedChildren="禁用"
|
|
|
- v-if="$hasPermissions('B_JgProduct_enable')&&record.enabledFlag!=undefined"
|
|
|
- @change="changeStatus(record)"
|
|
|
- :checked="record.enabledFlag == 1 ? true : false"
|
|
|
- />
|
|
|
- <span v-else :style="{ color: record.enabledFlag == 1 ? '#00aa00' : '#999' }">
|
|
|
- {{ record.enabledFlag == 1 ? '已启用' : (record.enabledFlag!=undefined?'已禁用':'--') }}
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- <!-- 操作 -->
|
|
|
- <template slot="action" slot-scope="text, record">
|
|
|
- <a-button
|
|
|
- size="small"
|
|
|
- type="link"
|
|
|
- class="button-success"
|
|
|
- @click="handleDetail(record)"
|
|
|
- id="shoppingCar-detail-btn">详情</a-button>
|
|
|
- <a-button
|
|
|
- size="small"
|
|
|
- type="link"
|
|
|
- class="button-primary"
|
|
|
- @click="handleEditPrice(record)"
|
|
|
- id="shoppingCar-price-btn">自定义报价</a-button>
|
|
|
+ <!-- 采购数量 -->
|
|
|
+ <template slot="purchaseQty" slot-scope="text, record">
|
|
|
+ <a-input placeholder="请输入采购数量" v-model="record.qty"/>
|
|
|
</template>
|
|
|
</s-table>
|
|
|
- <!-- 自定义报价弹窗 -->
|
|
|
- <edit-price-modal :openModal="openEditPriceModal" ref="editPrice" @close="openEditPriceModal=false" />
|
|
|
</a-card>
|
|
|
</template>
|
|
|
|
|
@@ -162,29 +74,28 @@ import { commonMixin } from '@/utils/mixin'
|
|
|
import { productList, getCurrentDealer, productUpdate } from '@/api/product'
|
|
|
import ProductType from '../../common/productType.js'
|
|
|
import ProductBrand from '../../common/productBrand.js'
|
|
|
-import { STable, VSelect } from '@/components'
|
|
|
-// import { downloadExcel } from '@/libs/JGPrint.js'
|
|
|
-import editPriceModal from './editPriceModal.vue'
|
|
|
+import { STable } from '@/components'
|
|
|
export default {
|
|
|
- name: 'ProductJgList',
|
|
|
- components: { STable, VSelect, ProductType, ProductBrand, editPriceModal },
|
|
|
+ name: 'ShoppingCarList',
|
|
|
+ components: { STable, ProductType, ProductBrand },
|
|
|
mixins: [commonMixin],
|
|
|
+ props: {
|
|
|
+ type: { // 按钮状态
|
|
|
+ type: String,
|
|
|
+ default: 'globalBtn'
|
|
|
+ }
|
|
|
+ },
|
|
|
data () {
|
|
|
return {
|
|
|
- advanced: true, // 高级搜索 展开/关闭
|
|
|
tableHeight: 0,
|
|
|
productType: [],
|
|
|
queryParam: { // 查询条件
|
|
|
code: '', // 产品编码
|
|
|
name: '', // 产品名称
|
|
|
- origCode: '', // 原厂编码
|
|
|
- sysFlag: '1',
|
|
|
productBrandSn: undefined, // 产品品牌
|
|
|
productTypeSn1: '', // 产品一级分类
|
|
|
productTypeSn2: '', // 产品二级分类
|
|
|
- productTypeSn3: '', // 产品三级分类
|
|
|
- onlineFalg: '',
|
|
|
- enabledFlag: '1'
|
|
|
+ productTypeSn3: '' // 产品三级分类
|
|
|
},
|
|
|
openEditPriceModal: false, // 自定义报价弹窗
|
|
|
iconShowFlag: false, // 列表配置图标显示
|
|
@@ -229,6 +140,17 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 批量删除
|
|
|
+ deleteMore () {
|
|
|
+ this.$confirm({
|
|
|
+ title: '提示',
|
|
|
+ content: '您已经选择3个产品,确认要将已选产品从购物车中移除吗?',
|
|
|
+ centered: true,
|
|
|
+ onOk: () => {
|
|
|
+ console.log('确定删除')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
inited (viewer) {
|
|
|
if (viewer) {
|
|
|
const imageUrl = []
|
|
@@ -256,13 +178,10 @@ export default {
|
|
|
resetSearchForm () {
|
|
|
this.queryParam.code = ''
|
|
|
this.queryParam.name = ''
|
|
|
- this.queryParam.origCode = ''
|
|
|
this.queryParam.productBrandSn = undefined
|
|
|
this.queryParam.productTypeSn1 = ''
|
|
|
this.queryParam.productTypeSn2 = ''
|
|
|
this.queryParam.productTypeSn3 = ''
|
|
|
- this.queryParam.onlineFalg = ''
|
|
|
- this.queryParam.enabledFlag = '1'
|
|
|
this.productType = []
|
|
|
this.$refs.table.refresh(true)
|
|
|
this.rowSelectionInfo = null
|
|
@@ -272,38 +191,14 @@ export default {
|
|
|
getColumns () {
|
|
|
const _this = this
|
|
|
this.columns = [
|
|
|
- { title: '序号', dataIndex: 'no', width: '4%', align: 'center' },
|
|
|
{ title: '产品编码', dataIndex: 'code', width: '12%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '产品名称', dataIndex: 'name', width: '16%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
- { title: '原厂编码', dataIndex: 'origCode', width: '12%', align: 'center', customRender: function (text) { return (!text || text == ' ') ? '--' : text } }
|
|
|
- ]
|
|
|
- const cArr = [
|
|
|
- { title: '终端建议价', dataIndex: 'terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
- { title: '车主建议价', dataIndex: 'carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
- { title: '自定义终端价', dataIndex: 'price1', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
- { title: '自定义车主价', dataIndex: 'price2', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
- { title: '状态', scopedSlots: { customRender: 'enabledFlag' }, width: '7%', align: 'center' },
|
|
|
- { title: '产品图片', scopedSlots: { customRender: 'imageUrl' }, width: '6%', align: 'center' },
|
|
|
- { title: '操作', scopedSlots: { customRender: 'action' }, width: '12%', align: 'center' }
|
|
|
+ { title: '产品名称', dataIndex: 'name', width: '30%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
|
+ { title: '单位', dataIndex: 'origCode', width: '12%', align: 'center', customRender: function (text) { return (!text || text == ' ') ? '--' : text } },
|
|
|
+ { title: '包装数', dataIndex: 'terminalPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '可用库存数量', dataIndex: 'carOwnersPrice', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
+ { title: '成本价', dataIndex: 'price1', width: '8%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
+ { title: '采购数量', scopedSlots: { customRender: 'purchaseQty' }, width: '20%', align: 'center' }
|
|
|
]
|
|
|
- getCurrentDealer().then(res => {
|
|
|
- if (res.status == 200) {
|
|
|
- if (res.data.dealerLevel && res.data.dealerLevel == 'PROVINCE') { // 省级
|
|
|
- this.columns.push(
|
|
|
- { title: '省级价', dataIndex: 'provincePrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
- { title: '市级建议价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
|
|
|
- )
|
|
|
- } else if (res.data.dealerLevel && res.data.dealerLevel == 'CITY') { // 市级
|
|
|
- this.columns.push(
|
|
|
- { title: '市级建议价', dataIndex: 'cityPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
|
|
|
- )
|
|
|
- }
|
|
|
- if (res.data.isShowSpecialPrice && res.data.isShowSpecialPrice == '1') { // 是否展示特约价
|
|
|
- this.columns.push({ title: '特约建议价', dataIndex: 'specialPrice', width: '6%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } })
|
|
|
- }
|
|
|
- this.columns = [...this.columns, ...cArr]
|
|
|
- }
|
|
|
- })
|
|
|
},
|
|
|
filterOption (input, option) {
|
|
|
return (
|
|
@@ -391,12 +286,6 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
- advanced (newValue, oldValue) {
|
|
|
- const _this = this
|
|
|
- this.$nextTick(() => { // 页面渲染完成后的回调
|
|
|
- _this.setTableH()
|
|
|
- })
|
|
|
- },
|
|
|
'$store.state.app.winHeight' (newValue, oldValue) { // 窗口变更时,需同时更改表格高度
|
|
|
this.setTableH()
|
|
|
}
|