|
|
@@ -108,7 +108,24 @@
|
|
|
<el-tag prop="cateId" v-for="(item, index) in cateOptions" v-if="scope.row.cateId==item.dictValue">{{item.dictLabel}}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="所属公司" align="center" prop="companyName" />
|
|
|
+ <el-table-column label="所属公司" align="center" width="220px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div v-if="scope.row.companyIds">
|
|
|
+ <el-tag
|
|
|
+ v-for="company in companyOptions.filter(company => {
|
|
|
+ if (!scope.row.companyIds) return false;
|
|
|
+ const ids = scope.row.companyIds.split(',').map(id => id.trim());
|
|
|
+ return ids.includes(String(company.companyId));
|
|
|
+ })"
|
|
|
+ :key="company.companyId"
|
|
|
+ size="small"
|
|
|
+ style="margin: 2px;"
|
|
|
+ >
|
|
|
+ {{ company.companyName }}
|
|
|
+ </el-tag>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="标题" align="center" prop="title" show-overflow-tooltip />
|
|
|
<el-table-column label="描述" align="center" prop="descs" show-overflow-tooltip />
|
|
|
<el-table-column label="原价" align="center" >
|
|
|
@@ -215,8 +232,8 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所属公司" prop="companyId">
|
|
|
- <el-select style="width: 240px" v-model="form.companyId" placeholder="请选择企业" clearable size="small" @change="handleCompanyChange">
|
|
|
+ <el-form-item label="所属公司" prop="companyIds">
|
|
|
+ <el-select style="width: 240px" v-model="form.companyIds" filterable multiple @change="handleCompanyChange" placeholder="请选择企业" clearable size="small">
|
|
|
<el-option
|
|
|
v-for="item in companyOptions"
|
|
|
:key="item.companyId"
|
|
|
@@ -328,13 +345,13 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog :title="product.title" v-if="product.open" :visible.sync="product.open" width="1000px" append-to-body>
|
|
|
- <product-attr-value-select ref="product" @selectProduct="selectProduct" :company-id="form.companyId"/>
|
|
|
+ <product-attr-value-select ref="product" @selectProduct="selectProduct" :company-ids="form.companyIds"/>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listStoreProductPackage, getStoreProductPackage, delStoreProductPackage, addStoreProductPackage, updateStoreProductPackage, exportStoreProductPackage,modifyStoreProductPackages } from "@/api/hisStore/storeProductPackage";
|
|
|
+import { listStoreProductPackage, getStoreProductPackage, delStoreProductPackage, addStoreProductPackage, updateStoreProductPackage, exportStoreProductPackage,modifyStoreProductPackages,getProductsCompanyIds } from "@/api/hisStore/storeProductPackage";
|
|
|
import Editor from '@/components/Editor/wang';
|
|
|
import productAttrValueSelect from "../components/productAttrValueSelect";
|
|
|
import Material from '@/components/Material'
|
|
|
@@ -461,8 +478,43 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
handleCompanyChange(){
|
|
|
- // 清除套餐商品
|
|
|
- this.products = [];
|
|
|
+ if (!this.products || this.products.length === 0) {
|
|
|
+ this.$message.warning('请先选择商品');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const productIds = this.products
|
|
|
+ .map(item => {
|
|
|
+ const id = item.productId
|
|
|
+ return id ? Number(id) : null;
|
|
|
+ })
|
|
|
+ .filter(id => id != null && !isNaN(id));
|
|
|
+
|
|
|
+ if (productIds.length === 0) {
|
|
|
+ this.$message.warning('没有有效的商品ID');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 查询所选公司是否有该商品
|
|
|
+ getProductsCompanyIds(productIds).then(response => {
|
|
|
+ const availableCompanyIds = (response.companyIds || [])
|
|
|
+ .map(id => {
|
|
|
+ const numId = Number(id);
|
|
|
+ return !isNaN(numId) ? Math.floor(numId) : null;
|
|
|
+ })
|
|
|
+ .filter(id => id != null);
|
|
|
+ const selectedCompanyIds = this.form.companyIds || [];
|
|
|
+ // 找出不在可用范围内的公司ID
|
|
|
+ const invalidCompanyIds = selectedCompanyIds.filter(
|
|
|
+ selectedId => !availableCompanyIds.includes(selectedId)
|
|
|
+ );
|
|
|
+
|
|
|
+ if (invalidCompanyIds.length > 0) {
|
|
|
+ this.$message.warning(`以下公司无法使用当前商品:${invalidCompanyIds.join(', ')},已自动移除`);
|
|
|
+
|
|
|
+ this.form.companyIds = selectedCompanyIds.filter(
|
|
|
+ selectedId => availableCompanyIds.includes(selectedId)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
/** 获取公司下拉列表*/
|
|
|
getCompanyList() {
|
|
|
@@ -601,6 +653,16 @@ export default {
|
|
|
const packageId = row.packageId || this.ids
|
|
|
getStoreProductPackage(packageId).then(response => {
|
|
|
this.form = response.data;
|
|
|
+ let companyIds = [];
|
|
|
+ if (response.data.companyIds && response.data.companyIds !== '') {
|
|
|
+ // 拆分成数组,并转换为数字类型
|
|
|
+ companyIds = response.data.companyIds
|
|
|
+ .split(',')
|
|
|
+ .map(item => item.trim())
|
|
|
+ .filter(item => item !== '')
|
|
|
+ .map(id => Number(id)); // 转换为数字
|
|
|
+ }
|
|
|
+ this.form.companyIds = companyIds;
|
|
|
this.open = true;
|
|
|
this.title = "修改商品组合套餐";
|
|
|
this.products=this.form.productList;
|
|
|
@@ -640,7 +702,11 @@ export default {
|
|
|
if (this.form.integral==null || this.form.integral<0){
|
|
|
this.form.integral = 0;
|
|
|
}
|
|
|
- // console.log(this.form)
|
|
|
+ const companyIds = this.form.companyIds
|
|
|
+ if (companyIds!=null && companyIds.length>0){
|
|
|
+ this.form.companyIds = companyIds.join(',');
|
|
|
+ }
|
|
|
+ console.log(this.form)
|
|
|
// return;
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|