|
@@ -36,6 +36,11 @@
|
|
<v-select code="PRICING_STATUS" id="productPricingList-pricingState" v-model="queryParam.pricingState" allowClear placeholder="请选择定价状态"></v-select>
|
|
<v-select code="PRICING_STATUS" id="productPricingList-pricingState" v-model="queryParam.pricingState" allowClear placeholder="请选择定价状态"></v-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-col>
|
|
|
|
+ <a-col :md="6" :sm="24">
|
|
|
|
+ <a-form-item label="产品状态">
|
|
|
|
+ <v-select code="PRODUCT_STATUS" id="productInfoList-state" v-model="queryParam.state" allowClear placeholder="请选择产品状态"></v-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-col>
|
|
</template>
|
|
</template>
|
|
<a-col :md="6" :sm="24" style="margin-bottom: 10px;">
|
|
<a-col :md="6" :sm="24" style="margin-bottom: 10px;">
|
|
<a-button type="primary" @click="searchForm" :disabled="disabled" id="productPricingList-refresh">查询</a-button>
|
|
<a-button type="primary" @click="searchForm" :disabled="disabled" id="productPricingList-refresh">查询</a-button>
|
|
@@ -56,14 +61,16 @@
|
|
</a-row>
|
|
</a-row>
|
|
</a-form>
|
|
</a-form>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 操作按钮 -->
|
|
|
|
+ <div class="table-operator" style="text-align:right;">
|
|
|
|
+ <a-checkbox v-model="queryParam.zeroQtyFlag" id="inventoryQueryList-zeroQtyFlag" @change="handleChangeQty">仅显示有库存</a-checkbox>
|
|
|
|
+ </div>
|
|
<!-- 列表 -->
|
|
<!-- 列表 -->
|
|
<s-table
|
|
<s-table
|
|
class="sTable fixPagination"
|
|
class="sTable fixPagination"
|
|
ref="table"
|
|
ref="table"
|
|
:style="{ height: tableHeight+84.5+'px' }"
|
|
:style="{ height: tableHeight+84.5+'px' }"
|
|
size="small"
|
|
size="small"
|
|
- :row-selection="$hasPermissions('B_productPricing_audit') ? { columnWidth: '4%', getCheckboxProps: record => ({ props: { disabled: record.pricingState!='WAIT_PRICING_AUDIT' } })}: null"
|
|
|
|
- @rowSelection="rowSelectionFun"
|
|
|
|
:rowKey="(record) => record.id"
|
|
:rowKey="(record) => record.id"
|
|
:columns="columns"
|
|
:columns="columns"
|
|
:data="loadData"
|
|
:data="loadData"
|
|
@@ -75,42 +82,8 @@
|
|
<span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
|
|
<span v-if="record.productTypeName2 || record.productTypeName3">{{ record.productTypeName2 }} {{ record.productTypeName3 ? '>' : '' }} {{ record.productTypeName3 }}</span>
|
|
<span v-else>--</span>
|
|
<span v-else>--</span>
|
|
</template>
|
|
</template>
|
|
- <!-- 成本价 -->
|
|
|
|
- <template slot="sterminaldsdPrice" slot-scope="text, record">
|
|
|
|
- <div v-if="record.supplierProductList">
|
|
|
|
- <p v-for="(item, index) in record.supplierProductList" :key="index" style="margin: 0;">
|
|
|
|
- <span>{{ (item.cost || item.cost==0) ? item.cost.toFixed(2):'--' }}</span>元 -
|
|
|
|
- <span>{{ (item.supplierName||'') }}</span>;
|
|
|
|
- </p>
|
|
|
|
- </div>
|
|
|
|
- <span v-else>--</span>
|
|
|
|
- </template>
|
|
|
|
- <!-- 操作 -->
|
|
|
|
- <template slot="action" slot-scope="text, record">
|
|
|
|
- <a-button
|
|
|
|
- size="small"
|
|
|
|
- type="link"
|
|
|
|
- v-if="record.pricingState=='WAIT_PRICING_AUDIT' && $hasPermissions('B_productPricing_audit')"
|
|
|
|
- class="button-warning"
|
|
|
|
- @click="handleAudit(record)"
|
|
|
|
- id="productPricingList-audit-btn">审核</a-button>
|
|
|
|
- <a-button
|
|
|
|
- size="small"
|
|
|
|
- type="link"
|
|
|
|
- v-if="$hasPermissions('B_productPricing_edit')"
|
|
|
|
- class="button-info"
|
|
|
|
- @click="handleEdit(record)"
|
|
|
|
- id="productPricingList-edit-btn">编辑</a-button>
|
|
|
|
- <span v-if="!(record.pricingState=='WAIT_PRICING_AUDIT' && $hasPermissions('B_productPricing_audit')) && !$hasPermissions('B_productPricing_edit')">--</span>
|
|
|
|
- </template>
|
|
|
|
</s-table>
|
|
</s-table>
|
|
</a-spin>
|
|
</a-spin>
|
|
- <!-- 编辑价格 -->
|
|
|
|
- <product-pricing-edit-modal v-drag :openModal="openModal" :itemSn="itemSn" @close="closeModal" @ok="$refs.table.refresh()" />
|
|
|
|
- <!-- 审核价格 -->
|
|
|
|
- <product-pricing-audit-modal v-drag :openModal="openAuditModal" :itemSn="itemSn" @close="closeAuditModal" @ok="auditSuccess" />
|
|
|
|
- <!-- 导入产品 -->
|
|
|
|
- <importGuideModal :openModal="openGuideModal" @close="openGuideModal=false" @ok="hanldeOk" />
|
|
|
|
</a-card>
|
|
</a-card>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -119,12 +92,9 @@ import { commonMixin } from '@/utils/mixin'
|
|
import rangeDate from '@/views/common/rangeDate.vue'
|
|
import rangeDate from '@/views/common/rangeDate.vue'
|
|
import { STable, VSelect } from '@/components'
|
|
import { STable, VSelect } from '@/components'
|
|
import { exportExcel } from '@/libs/JGPrint.js'
|
|
import { exportExcel } from '@/libs/JGPrint.js'
|
|
-// import productPricingEditModal from './editModal.vue'
|
|
|
|
-// import productPricingAuditModal from './auditModal.vue'
|
|
|
|
-import { productPricingList, productExportPricing, batchAuditPrice, productPriceInsertImport } from '@/api/product'
|
|
|
|
|
|
+import { queryOnlinePage, excelOnlineList } from '@/api/product'
|
|
import ProductType from '@/views/common/productType.js'
|
|
import ProductType from '@/views/common/productType.js'
|
|
import ProductBrand from '@/views/common/productBrand.js'
|
|
import ProductBrand from '@/views/common/productBrand.js'
|
|
-// import ImportGuideModal from './importGuideModal.vue'
|
|
|
|
export default {
|
|
export default {
|
|
name: 'ProductPricingList',
|
|
name: 'ProductPricingList',
|
|
mixins: [commonMixin],
|
|
mixins: [commonMixin],
|
|
@@ -133,7 +103,6 @@ export default {
|
|
return {
|
|
return {
|
|
spinning: false,
|
|
spinning: false,
|
|
advanced: true, // 高级搜索 展开/关闭
|
|
advanced: true, // 高级搜索 展开/关闭
|
|
- openGuideModal: false,
|
|
|
|
tableHeight: 0,
|
|
tableHeight: 0,
|
|
time: [],
|
|
time: [],
|
|
queryParam: { // 查询条件
|
|
queryParam: { // 查询条件
|
|
@@ -144,16 +113,19 @@ export default {
|
|
productTypeSn2: '', // 产品二级分类
|
|
productTypeSn2: '', // 产品二级分类
|
|
productTypeSn3: '', // 产品三级分类
|
|
productTypeSn3: '', // 产品三级分类
|
|
pricingState: undefined, // 定价状态
|
|
pricingState: undefined, // 定价状态
|
|
- beginDate: undefined,
|
|
|
|
- endDate: undefined
|
|
|
|
|
|
+ pricingTimeBegin: undefined, // 定价时间
|
|
|
|
+ pricingTimeEnd: undefined,
|
|
|
|
+ state: undefined, // 产品状态
|
|
|
|
+ stockFlag: undefined
|
|
},
|
|
},
|
|
|
|
+ zeroQtyFlag: false,
|
|
productType: [],
|
|
productType: [],
|
|
disabled: false, // 查询、重置按钮是否可操作
|
|
disabled: false, // 查询、重置按钮是否可操作
|
|
// 加载数据方法 必须为 Promise 对象
|
|
// 加载数据方法 必须为 Promise 对象
|
|
loadData: parameter => {
|
|
loadData: parameter => {
|
|
this.disabled = true
|
|
this.disabled = true
|
|
this.spinning = true
|
|
this.spinning = true
|
|
- return productPricingList(Object.assign(parameter, this.queryParam)).then(res => {
|
|
|
|
|
|
+ return queryOnlinePage(Object.assign(parameter, this.queryParam)).then(res => {
|
|
let data
|
|
let data
|
|
if (res.status == 200) {
|
|
if (res.status == 200) {
|
|
data = res.data
|
|
data = res.data
|
|
@@ -161,44 +133,37 @@ export default {
|
|
for (var i = 0; i < data.list.length; i++) {
|
|
for (var i = 0; i < data.list.length; i++) {
|
|
data.list[i].no = no + i + 1
|
|
data.list[i].no = no + i + 1
|
|
}
|
|
}
|
|
- this.total = data.count || 0
|
|
|
|
this.disabled = false
|
|
this.disabled = false
|
|
}
|
|
}
|
|
this.spinning = false
|
|
this.spinning = false
|
|
return data
|
|
return data
|
|
})
|
|
})
|
|
- },
|
|
|
|
- total: 0, // 合计
|
|
|
|
- openModal: false, // 编辑 弹框
|
|
|
|
- openAuditModal: false, // 审核 弹框
|
|
|
|
- itemSn: '', // 当前产品sn
|
|
|
|
- rowSelectionInfo: null
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
- selTotal () {
|
|
|
|
- return this.rowSelectionInfo && this.rowSelectionInfo.selectedRowKeys ? this.rowSelectionInfo.selectedRowKeys.length : 0
|
|
|
|
- },
|
|
|
|
columns () {
|
|
columns () {
|
|
const _this = this
|
|
const _this = this
|
|
const arr = [
|
|
const arr = [
|
|
- { title: '序号', dataIndex: 'no', width: '3%', align: 'center' },
|
|
|
|
|
|
+ { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
|
|
{ title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
- { title: '产品名称', dataIndex: 'name', align: 'left', width: '13%', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
|
|
+ { title: '产品名称', dataIndex: 'name', align: 'left', width: '10%', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
{ title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '产品编码', dataIndex: 'code', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '原厂编码', dataIndex: 'origCode', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '原厂编码', dataIndex: 'origCode', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '品牌', dataIndex: 'productBrandName', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '品牌', dataIndex: 'productBrandName', width: '5%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '7%', align: 'center' },
|
|
{ title: '产品分类', scopedSlots: { customRender: 'productType' }, width: '7%', align: 'center' },
|
|
|
|
+ { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
|
|
|
|
+ { title: '可用库存', dataIndex: 'currentStockQty', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
|
|
|
|
+ { title: '第一次入库时间', dataIndex: 'skCreateDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '产品状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '产品状态', dataIndex: 'stateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '定价状态', dataIndex: 'pricingStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '定价状态', dataIndex: 'pricingStateDictValue', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '定价时间', dataIndex: 'pricingTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '定价时间', dataIndex: 'pricingTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
- { title: '成本价', scopedSlots: { customRender: 'sterminaldsdPrice' }, width: '7%', align: 'center' },
|
|
|
|
|
|
+ { title: '最新成本', dataIndex: 'lastStockCost', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
|
|
{ title: '省级价', dataIndex: 'provincePrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '省级价', dataIndex: 'provincePrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '市级价', dataIndex: 'cityPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '市级价', dataIndex: 'cityPrice', width: '5%', align: 'center', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '特约价', dataIndex: 'specialPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '特约价', dataIndex: 'specialPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '终端价', dataIndex: 'terminalPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
{ title: '终端价', dataIndex: 'terminalPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
- { title: '车主价', dataIndex: 'carOwnersPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } },
|
|
|
|
- { title: '操作', scopedSlots: { customRender: 'action' }, width: '8%', align: 'center' }
|
|
|
|
|
|
+ { title: '车主价', dataIndex: 'carOwnersPrice', width: '5%', align: 'right', customRender: function (text) { return ((text || text == 0) ? _this.toThousands(text) : '--') } }
|
|
]
|
|
]
|
|
return arr
|
|
return arr
|
|
}
|
|
}
|
|
@@ -206,12 +171,13 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
// 定价时间 change
|
|
// 定价时间 change
|
|
dateChange (date) {
|
|
dateChange (date) {
|
|
- this.queryParam.beginDate = date[0]
|
|
|
|
- this.queryParam.endDate = date[1]
|
|
|
|
|
|
+ this.queryParam.pricingTimeBegin = date[0]
|
|
|
|
+ this.queryParam.pricingTimeEnd = date[1]
|
|
},
|
|
},
|
|
- // 表格选中项
|
|
|
|
- rowSelectionFun (obj) {
|
|
|
|
- this.rowSelectionInfo = obj || null
|
|
|
|
|
|
+ handleChangeQty (e) {
|
|
|
|
+ this.zeroQtyFlag = e.target.checked
|
|
|
|
+ this.queryParam.stockFlag = e.target.checked ? '1' : '0'
|
|
|
|
+ this.$refs.table.refresh(true)
|
|
},
|
|
},
|
|
// 重置
|
|
// 重置
|
|
resetSearchForm () {
|
|
resetSearchForm () {
|
|
@@ -223,8 +189,9 @@ export default {
|
|
this.queryParam.productTypeSn3 = ''
|
|
this.queryParam.productTypeSn3 = ''
|
|
this.queryParam.pricingState = undefined
|
|
this.queryParam.pricingState = undefined
|
|
|
|
|
|
- this.queryParam.beginDate = undefined
|
|
|
|
- this.queryParam.endDate = undefined
|
|
|
|
|
|
+ this.queryParam.pricingTimeBegin = undefined
|
|
|
|
+ this.queryParam.pricingTimeEnd = undefined
|
|
|
|
+ this.queryParam.state = undefined
|
|
this.time = []
|
|
this.time = []
|
|
this.$refs.rangeDate.resetDate(this.time)
|
|
this.$refs.rangeDate.resetDate(this.time)
|
|
this.productType = []
|
|
this.productType = []
|
|
@@ -235,78 +202,15 @@ export default {
|
|
this.$refs.table.clearSelected() // 清空表格选中项
|
|
this.$refs.table.clearSelected() // 清空表格选中项
|
|
this.$refs.table.refresh(true)
|
|
this.$refs.table.refresh(true)
|
|
},
|
|
},
|
|
- // 审核
|
|
|
|
- handleAudit (row) {
|
|
|
|
- this.itemSn = row.productSn
|
|
|
|
- this.openAuditModal = true
|
|
|
|
- },
|
|
|
|
- auditSuccess () {
|
|
|
|
- this.$refs.table.clearSelected() // 清空表格选中项
|
|
|
|
- this.$refs.table.refresh()
|
|
|
|
- },
|
|
|
|
- // 批量审核
|
|
|
|
- handleBatchAudit () {
|
|
|
|
- const _this = this
|
|
|
|
- if (!_this.rowSelectionInfo || (_this.rowSelectionInfo && _this.rowSelectionInfo.selectedRowKeys.length < 1)) {
|
|
|
|
- _this.$message.warning('请先选择产品!')
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- const obj = []
|
|
|
|
- _this.rowSelectionInfo && _this.rowSelectionInfo.selectedRows.map(item => {
|
|
|
|
- obj.push(item.productSn)
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
- this.$confirm({
|
|
|
|
- title: '提示',
|
|
|
|
- content: '确认要审核通过吗?',
|
|
|
|
- centered: true,
|
|
|
|
- onOk () {
|
|
|
|
- _this.spinning = true
|
|
|
|
- batchAuditPrice(obj).then(res => {
|
|
|
|
- if (res.status == 200) {
|
|
|
|
- _this.$refs.table.clearSelected() // 清空表格选中项
|
|
|
|
- _this.$message.success(res.message)
|
|
|
|
- _this.$refs.table.refresh()
|
|
|
|
- _this.spinning = false
|
|
|
|
- } else {
|
|
|
|
- _this.spinning = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- // 导入产品
|
|
|
|
- hanldeOk (obj) {
|
|
|
|
- productPriceInsertImport(obj).then(res => {
|
|
|
|
- if (res.status == 200) {
|
|
|
|
- this.resetSearchForm()
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
// 导出
|
|
// 导出
|
|
handleExport () {
|
|
handleExport () {
|
|
const _this = this
|
|
const _this = this
|
|
const params = this.queryParam
|
|
const params = this.queryParam
|
|
this.spinning = true
|
|
this.spinning = true
|
|
- exportExcel(productExportPricing, params, '产品价格导出', function () {
|
|
|
|
|
|
+ exportExcel(excelOnlineList, params, '产品状态信息导出', function () {
|
|
_this.spinning = false
|
|
_this.spinning = false
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- // 编辑
|
|
|
|
- handleEdit (row) {
|
|
|
|
- this.itemSn = row.productSn
|
|
|
|
- this.openModal = true
|
|
|
|
- },
|
|
|
|
- // 关闭弹框
|
|
|
|
- closeModal () {
|
|
|
|
- this.itemSn = ''
|
|
|
|
- this.openModal = false
|
|
|
|
- },
|
|
|
|
- // 关闭审核弹框
|
|
|
|
- closeAuditModal () {
|
|
|
|
- this.itemSn = ''
|
|
|
|
- this.openAuditModal = false
|
|
|
|
- },
|
|
|
|
// 产品分类 change
|
|
// 产品分类 change
|
|
changeProductType (val, opt) {
|
|
changeProductType (val, opt) {
|
|
this.queryParam.productTypeSn1 = val[0] ? val[0] : ''
|
|
this.queryParam.productTypeSn1 = val[0] ? val[0] : ''
|