|
|
@@ -0,0 +1,223 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <headerTitle title="基本信息"></headerTitle>
|
|
|
+ <el-form
|
|
|
+ label-width="120px"
|
|
|
+ ref="form"
|
|
|
+ :model="form"
|
|
|
+ :rules="rules"
|
|
|
+ class="el-form-box"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商品名称:" prop="goodsName">
|
|
|
+ <el-input
|
|
|
+ v-model="form.goodsName"
|
|
|
+ maxlength="50"
|
|
|
+ disabled
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商品分类:" prop="categoryLevelId">
|
|
|
+ <SelectTree :data="gList" v-model="form.categoryLevelId" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商品编码:" prop="goodsCode">
|
|
|
+ <el-input disabled v-model="form.goodsCode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商品级别:" prop="level">
|
|
|
+ <el-select v-model="form.level" width="100%" disabled>
|
|
|
+ <el-option
|
|
|
+ v-for="item in levelList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="包装规格:">
|
|
|
+ <el-input disabled v-model="form.packingSpecification"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="商品图片:">
|
|
|
+ <el-image
|
|
|
+ v-if="imgs.length > 0"
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ fit="cover"
|
|
|
+ :src="imgs[0].url"
|
|
|
+ :preview-src-list="imgs.map((item) => item.url)"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <headerTitle title="价格"></headerTitle>
|
|
|
+ <ele-pro-table
|
|
|
+ ref="table"
|
|
|
+ :needPage="false"
|
|
|
+ :columns="columns"
|
|
|
+ :datasource="form.goodsPriceList"
|
|
|
+ class="time-form"
|
|
|
+ :toolkit="[]"
|
|
|
+ >
|
|
|
+ <template v-slot:priceType="scope">
|
|
|
+ <DictSelection
|
|
|
+ dictName="商品价格类型"
|
|
|
+ clearable
|
|
|
+ disabled
|
|
|
+ v-model="scope.row.priceType"
|
|
|
+ >
|
|
|
+ </DictSelection>
|
|
|
+ </template>
|
|
|
+ </ele-pro-table>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ const formDef = {
|
|
|
+ id: '', //商品id
|
|
|
+ categoryLevelId: '', //商品分类
|
|
|
+ goodsName: '', //商品名称
|
|
|
+ goodsCode: '', //商品编码
|
|
|
+ imagesPaths: '', //商品图片
|
|
|
+ imagesFileIds: '', //商品图片id
|
|
|
+ categoryId: '', //物品id
|
|
|
+ productName: '', //物品名称
|
|
|
+ productCategoryName: '', //物品类型
|
|
|
+ productCode: '', //物品编码
|
|
|
+ produceType: '', //属性类型
|
|
|
+ warehouseId: '', //仓库名称
|
|
|
+ warehouseNum: '', //库存
|
|
|
+ packingSpecification: '', //包装规格
|
|
|
+ measuringUnit: '', //计量单位
|
|
|
+ weightUnit: '', //重量单位
|
|
|
+ warehouseList: [], //仓库
|
|
|
+ level: '2',
|
|
|
+ children: [] //价格数组
|
|
|
+ };
|
|
|
+ import SelectTree from './selectTree.vue';
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import { getTreeByPid } from '@/api/classifyManage';
|
|
|
+
|
|
|
+ import { getGoodsById } from '@/api/bpm/components/goodsManage/index';
|
|
|
+ import { levelList } from '@/enum/dict.js';
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ SelectTree
|
|
|
+ },
|
|
|
+ mixins: [dictMixins],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ imgs: [],
|
|
|
+ form: {},
|
|
|
+ levelList,
|
|
|
+ gList:[]
|
|
|
+ };
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ businessId: {
|
|
|
+ default: ''
|
|
|
+ },
|
|
|
+ taskId: {
|
|
|
+ default: ''
|
|
|
+ },
|
|
|
+ id: {
|
|
|
+ default: ''
|
|
|
+ },
|
|
|
+ taskDefinitionKey: {
|
|
|
+ default: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ columns() {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ width: 80,
|
|
|
+ type: 'index',
|
|
|
+ columnKey: 'index',
|
|
|
+ align: 'center',
|
|
|
+ fixed: 'left',
|
|
|
+ label: '序号'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'priceType',
|
|
|
+ label: '价格类型',
|
|
|
+ slot: 'priceType',
|
|
|
+ headerSlot: 'headerPriceType',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'unitPrice',
|
|
|
+ headerSlot: 'headerUnitPrice',
|
|
|
+ label: '含税单价',
|
|
|
+ slot: 'unitPrice',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'taxRate',
|
|
|
+ slot: 'taxRate',
|
|
|
+ label: '税率',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'excludeTaxPrice',
|
|
|
+ label: '不含税单价',
|
|
|
+ slot: 'excludeTaxPrice',
|
|
|
+ align: 'center'
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getTreeData();
|
|
|
+ this.getGoodsById();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //获取详情数据
|
|
|
+ async getGoodsById() {
|
|
|
+ let res = await getGoodsById(this.businessId);
|
|
|
+ if (res.imagesPaths) {
|
|
|
+ res.imagesPaths.split(',').map((item, index) => {
|
|
|
+ this.imgs = [];
|
|
|
+ this.imgs.push({
|
|
|
+ id: res.imagesFileIds.split(',')[index],
|
|
|
+ url:
|
|
|
+ window.location.origin +
|
|
|
+ '/api/main/file/getFile?objectName=' +
|
|
|
+ item,
|
|
|
+ status: 'done'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.form = res;
|
|
|
+ },
|
|
|
+
|
|
|
+ //查询商品分类
|
|
|
+ async getTreeData() {
|
|
|
+ const res = await getTreeByPid('1789827921908150274');
|
|
|
+ if (res?.code === '0') {
|
|
|
+ this.gList = res.data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .el-form-item {
|
|
|
+ margin-bottom: 20px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-form-item__error {
|
|
|
+ display: block !important;
|
|
|
+ color: red;
|
|
|
+ padding-top: 4px;
|
|
|
+ }
|
|
|
+</style>
|