main
fanfan 11 months ago
parent 654c0386f0
commit c764984e20
  1. 60
      src/components/Modal/GoodsModal/GoodsModal.vue
  2. 6
      src/views/dataCenter/goods/Create.vue
  3. 12
      src/views/dataCenter/goods/Update.vue

@ -2,7 +2,7 @@
<a-modal <a-modal
class="noborder" class="noborder"
:title="title" :title="title"
:width="820" :width="900"
:visible="visible" :visible="visible"
:isLoading="isLoading" :isLoading="isLoading"
:maskClosable="false" :maskClosable="false"
@ -47,11 +47,14 @@
image: item.goods_image, image: item.goods_image,
imageAlt: '商品图片', imageAlt: '商品图片',
title: item.goods_name, title: item.goods_name,
subtitle: `¥${item.goods_price_min}` subtitle: `¥${item.goods_price_min}`,
}" }"
:subTitleColor="true" :subTitleColor="true"
/> />
</template> </template>
<span slot="specific_value" slot-scope="text">
<a-tooltip placement="topLeft" :title="text"> {{ text}}</a-tooltip>
</span>
<!-- 商品状态 --> <!-- 商品状态 -->
<span slot="status" slot-scope="text"> <span slot="status" slot-scope="text">
<a-tag :color="text == 10 ? 'green' : 'red'">{{ text == 10 ? '上架' : '下架' }}</a-tag> <a-tag :color="text == 10 ? 'green' : 'red'">{{ text == 10 ? '上架' : '下架' }}</a-tag>
@ -71,27 +74,33 @@ import { STable, GoodsItem } from '@/components/Table/table'
const columns = [ const columns = [
{ {
title: '商品ID', title: '商品ID',
dataIndex: 'goods_id' dataIndex: 'goods_id',
}, },
{ {
title: '商品信息', title: '商品信息',
width: '335px', width: '335px',
scopedSlots: { customRender: 'item' } scopedSlots: { customRender: 'item' },
},
{
title: '规格值',
dataIndex: 'specific_value',
width: '100px',
scopedSlots: { customRender: 'specific_value' },
}, },
{ {
title: '商品价格', title: '商品价格',
dataIndex: 'goods_price_min', dataIndex: 'goods_price_min',
scopedSlots: { customRender: 'goods_price_min' } scopedSlots: { customRender: 'goods_price_min' },
}, },
{ {
title: '库存总量', title: '库存总量',
dataIndex: 'stock_total' dataIndex: 'stock_total',
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'status', dataIndex: 'status',
scopedSlots: { customRender: 'status' } scopedSlots: { customRender: 'status' },
} },
] ]
export default { export default {
@ -102,11 +111,11 @@ export default {
// , multiple // , multiple
maxNum: PropTypes.integer.def(100), maxNum: PropTypes.integer.def(100),
// //
defaultList: PropTypes.array.def([]) defaultList: PropTypes.array.def([]),
}, },
components: { components: {
STable, STable,
GoodsItem GoodsItem,
}, },
data() { data() {
return { return {
@ -123,9 +132,8 @@ export default {
// table // table
columns, columns,
// Promise // Promise
loadData: param => { loadData: (param) => {
return GoodsApi.list({ ...param, ...this.queryParam }) return GoodsApi.list({ ...param, ...this.queryParam }).then((response) => {
.then(response => {
return response.data.list return response.data.list
}) })
}, },
@ -136,7 +144,7 @@ export default {
// //
selectedItems: [], selectedItems: [],
// //
categoryListTree: [] categoryListTree: [],
} }
}, },
computed: { computed: {
@ -144,16 +152,15 @@ export default {
return { return {
selectedRowKeys: this.selectedRowKeys, selectedRowKeys: this.selectedRowKeys,
onChange: this.onSelectChange, onChange: this.onSelectChange,
type: !this.multiple ? 'radio' : 'checkbox' type: !this.multiple ? 'radio' : 'checkbox',
}
} }
}, },
},
created() { created() {
// //
this.getCategoryList() this.getCategoryList()
}, },
methods: { methods: {
// //
handle() { handle() {
// //
@ -171,7 +178,7 @@ export default {
const { fieldName, defaultList } = this const { fieldName, defaultList } = this
if (defaultList.length) { if (defaultList.length) {
this.selectedItems = cloneDeep(defaultList) this.selectedItems = cloneDeep(defaultList)
this.selectedRowKeys = defaultList.map(item => item[fieldName]) this.selectedRowKeys = defaultList.map((item) => item[fieldName])
} }
}, },
@ -179,8 +186,8 @@ export default {
getCategoryList() { getCategoryList() {
this.isLoading = true this.isLoading = true
CategoryModel.getListFromScreen() CategoryModel.getListFromScreen()
.then(selectList => this.categoryListTree = selectList) .then((selectList) => (this.categoryListTree = selectList))
.finally(() => this.isLoading = false) .finally(() => (this.isLoading = false))
}, },
// //
@ -199,13 +206,13 @@ export default {
createSelectedItems(selectedRowKeys, oldSelectedItems, newSelectedItems) { createSelectedItems(selectedRowKeys, oldSelectedItems, newSelectedItems) {
const { fieldName } = this const { fieldName } = this
const selectedItems = [] const selectedItems = []
oldSelectedItems.forEach(item => { oldSelectedItems.forEach((item) => {
if (selectedRowKeys.includes(item[fieldName])) { if (selectedRowKeys.includes(item[fieldName])) {
selectedItems.push(item) selectedItems.push(item)
} }
}) })
const oldSelectedKeys = oldSelectedItems.map(item => item[fieldName]) const oldSelectedKeys = oldSelectedItems.map((item) => item[fieldName])
newSelectedItems.forEach(item => { newSelectedItems.forEach((item) => {
if (!oldSelectedKeys.includes(item[fieldName]) && selectedRowKeys.includes(item[fieldName])) { if (!oldSelectedKeys.includes(item[fieldName]) && selectedRowKeys.includes(item[fieldName])) {
selectedItems.push(item) selectedItems.push(item)
} }
@ -247,13 +254,12 @@ export default {
// //
this.$emit('handleSubmit', { this.$emit('handleSubmit', {
selectedItems: this.selectedItems, selectedItems: this.selectedItems,
selectedRowKeys: this.selectedRowKeys selectedRowKeys: this.selectedRowKeys,
}) })
// //
this.handleCancel() this.handleCancel()
} },
},
}
} }
</script> </script>

@ -174,6 +174,12 @@
<!-- <a-radio :value="20" :disabled="true">多规格</a-radio> --> <!-- <a-radio :value="20" :disabled="true">多规格</a-radio> -->
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
<a-form-item label="规格值" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
placeholder="多个规格值,以英文分号分隔"
v-decorator="['specific_value', { rules: [{ required: true, message: '请输入规格值' }] }]"
/>
</a-form-item>
<!-- 多规格的表单内容 --> <!-- 多规格的表单内容 -->
<div v-show="form.getFieldValue('spec_type') == 20"> <div v-show="form.getFieldValue('spec_type') == 20">
<MultiSpec ref="MultiSpec" /> <MultiSpec ref="MultiSpec" />

@ -164,6 +164,12 @@
<small class="c-red">该商品当前正在参与其他活动商品规格不允许更改</small> <small class="c-red">该商品当前正在参与其他活动商品规格不允许更改</small>
</p> </p>
</a-form-item> </a-form-item>
<a-form-item label="规格值" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
placeholder="多个规格值,以英文分号分隔"
v-decorator="['specific_value', { rules: [{ required: true, message: '请输入规格值' }] }]"
/>
</a-form-item>
<!-- 多规格的表单内容 --> <!-- 多规格的表单内容 -->
<div v-if="form.getFieldValue('spec_type') == 20"> <div v-if="form.getFieldValue('spec_type') == 20">
<MultiSpec <MultiSpec
@ -176,12 +182,6 @@
</div> </div>
<!-- 单规格的表单内容 --> <!-- 单规格的表单内容 -->
<div v-if="form.getFieldValue('spec_type') == 10"> <div v-if="form.getFieldValue('spec_type') == 10">
<a-form-item label="规格值" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input
placeholder="多个规格值,以英文分号分隔"
v-decorator="['specific_value', { rules: [{ required: true, message: '请输入规格值' }] }]"
/>
</a-form-item>
<a-form-item <a-form-item
label="商品价格" label="商品价格"
:labelCol="labelCol" :labelCol="labelCol"

Loading…
Cancel
Save