我是企业相关功能提交

20240109-yw
yuanwei 1 year ago
parent cf7732a748
commit bd1da2f46f

@ -11,6 +11,16 @@ export function filterRlCompany(query) {
)
}
export function filterProductInfoDetail(query) {
return axios(
{
url: "/udi/basic/rel/filterProductInfoDetail",
method: "post",
params: query
}
)
}
export function filterByUuid(query) {
return axios(
{

@ -34,3 +34,12 @@ export function updateCert(param) {
data :param
});
}
export function getLocalCompanyCert(param) {
return request({
url: "/reg/company/cert/filterList",
method: "get",
params :param
});
}

@ -51,4 +51,12 @@ export function delSupComapnys(query) {
export function getLocalCompanyInfo(param) {
return request({
url: "/udi/auth/user/comapny/filterRegCompany",
method: "get",
params :param
});
}

@ -23,3 +23,10 @@ export function daletePerSon(param) {
data :param
});
}
export function getUserPersonList(param) {
return request({
url: "/sup/company/person/filterList",
method: "get",
params :param
});
}

@ -0,0 +1,683 @@
<template>
<!-- 首营品种资质 -->
<div>
<!---生产企业资质-->
<el-card>
<el-form
:model="filterQuery"
class="query-form"
label-width="100px"
v-show="showSearch"
>
<el-row>
<el-col span="6">
<el-form-item label="企业名称:">
<el-input
v-model="filterQuery.companyName"
style="width: 90%"
placeholder="请输入企业名称"
></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="社会信用号:">
<el-input
v-model="filterQuery.creditCode"
style="width: 90%"
placeholder="请输入社会信用号"
></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="处理状态:">
<el-select
v-model="filterQuery.auditStatus"
style="width: 90%"
placeholder="请输入处理状态"
>
<el-option label="全部" value=""></el-option>
<el-option label="草稿" value="0"></el-option>
<el-option label="未审核" value="6"></el-option>
<el-option label="变更未审核" value="3"></el-option>
<el-option label="已审核" value="1"></el-option>
<el-option label="已拒绝" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display: flex">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"
>重置
</el-button
>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
<el-button type="primary" icon="el-icon-plus" @click="addInfoDialog()"
>添加
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
border
highlight-current-row
@current-change="supManufacturerClick"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="企业名称"
prop="companyName"
width="250"
></el-table-column>
<el-table-column label="社会信用号" prop="creditCode"></el-table-column>
<el-table-column label="企业类型" prop="bussinessStatus" width="120">
<template slot-scope="scope">
<span>{{ companyTypeMap[scope.row.companyType] }}</span>
</template>
</el-table-column>
<el-table-column label="所在地区" prop="placeArea"></el-table-column>
<el-table-column
label="所在地址"
prop="placeAddress"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="所属供应商"
prop="supName"
show-overflow-tooltip
></el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.auditStatus | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="addInfoDialog(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
:disabled="scope.row.auditStatus === 1"
@click.native.stop="deleteDialog(scope.row)"
>删除
</el-button>
<el-button
type="text"
size="small"
v-if="scope.row.auditStatus === 2"
@click.native.stop="rejectInfo(scope.row)"
>说明
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
<el-dialog
:title="formMap[formName]"
:visible.sync="addInfoVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addInfoVisible"
@close="closeDialog"
>
<suppliersEnterpriseBasicAdd
:addCloseDialog="closeDialog"
:inputQuery="inputQuery"
:editType="editType"
:fromType="fromType"
></suppliersEnterpriseBasicAdd>
</el-dialog>
</el-card>
<!---配送企业资质-->
<el-card class="el-card">
<el-form
:model="registrationQuery"
class="query-form"
style="margin-top: 5px"
v-show="showSearch2"
label-width="100px"
>
<el-row>
<el-col span="6">
<el-form-item label="物资名称:">
<el-input
v-model="registrationQuery.recordProductName"
style="width: 90%"
clearable
placeholder="物资名称"
></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="注册备案号:">
<el-input
v-model="registrationQuery.recordCode"
style="width: 90%"
clearable
placeholder="注册备案号"
></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="注册备案人:">
<el-input
v-model="registrationQuery.recordPeopleName"
style="width: 90%"
clearable
placeholder="注册备案人"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display: flex">
<el-button icon="el-icon-view" type="primary" @click="hideSearch2"
>显示/隐藏搜索栏
</el-button
>
<el-button type="primary" icon="el-icon-refresh" @click="onReset2"
>重置
</el-button
>
<el-button type="primary" icon="el-icon-search" @click="onSubmit2"
>查询
</el-button
>
<el-button
type="primary"
icon="el-icon-plus"
@click="registrationDialog()"
>添加
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table
v-loading="registrationLoading"
:data="registrationList"
style="width: 100%"
border
highlight-current-row
>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column
label="注册/备案产品名称"
prop="recordProductName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案号"
prop="recordCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案人名称"
prop="recordPeopleName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生产企业"
prop="manufacturerName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="所属供应商"
prop="supName"
show-overflow-tooltip
></el-table-column>
<el-table-column label="审核状态" prop="auditStatus" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.auditStatus | statusFilterType">
{{ checkFlag[scope.row.auditStatus] }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="registrationDialog(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
:disabled="scope.row.auditStatus === 1"
@click.native="deleteRegistration(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="certTotal > 0"
:total="certTotal"
:page.sync="registrationQuery.page"
:limit.sync="registrationQuery.limit"
@pagination="certHandleCurrentChange"
></pagination>
<el-dialog
:title="formProductMap[formName]"
:visible.sync="registrationVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="registrationVisible"
@close="closeProductDialog"
>
<suppliersRegistrationBasic
:closeRegistrationDialog="closeProductDialog"
:inputQuery="curProductQuery"
:editType="editProductType"
:currentManufacturer="currentManufacturer"
></suppliersRegistrationBasic>
</el-dialog>
</el-card>
</div>
</template>
<script>
import {
deleteCompany,
getCompanyList,
getCompanyBySup,
} from "@/api/purchase/supManufacturer";
import suppliersEnterpriseBasicAdd from "@/views/purchase/manufacturer/supManufacturerEditDialog";
import {
getRegistrationList,
deleteRegistration,
} from "@/api/purchase/suppliersRegistrationBasic";
import suppliersRegistrationBasic from "@/views/purchase/product/supProductEditDialog";
export default {
name: "supCertificationAdd",
data() {
return {
BASE_URL: process.env.VUE_APP_BASE_API,
showSearch: true,
showSearch2: true,
/**------------------生产企业资质--------------------*/
filterQuery: {
customerId: null,
companyName: "",
auditStatus: null,
creditCode: "",
placeArea: "",
page: 1,
limit: 20,
},
total: 0,
companyTypeMap: {
1: "境内企业",
2: "境外企业",
},
productManageTypeMap: {
1: "Ⅰ类",
2: "Ⅱ类",
3: "Ⅲ类",
},
checkFlag: {
0: "草稿",
1: "已通过",
2: "已拒绝",
3: "变更未审核",
6: "未审核",
},
loading: false,
list: [],
addInfoVisible: false,
fileUrl: "",
inputQuery: {
auditStatus: 6,
},
editType: 1,
fromType: 1, //1:2:
formMap: {
add: "新增生产企业资质信息",
update: "编辑生产企业资质信息",
},
currentManufacturer: null,
/**------------------配送企业资质--------------------*/
registrationVisible: false,
enterpriseId: "",
registrationQuery: {
auditStatus: null,
customerId: null,
manufacturerIdFk: null,
recordProductName: "",
recordCode: "",
recordPeopleName: "",
page: 1,
limit: 20,
},
registrationList: [],
certTotal: 0,
registrationLoading: false,
registrationId: "",
pmQuery: {
customerId: null,
companyName: null,
page: 1,
limit: 10,
},
curProductQuery: {
auditStatus: 6,
},
editProductType: 0,
formName: "add",
formProductMap: {
add: "新增配送产品资质信息",
update: "编辑配送产品资质信息",
},
};
},
filters: {
statusFilterType(status) {
const statusMap = {
0: "warning",
1: "success",
2: "danger",
3: "warning",
6: "warning",
};
return statusMap[status];
},
statusFilterName(status) {
const statusMap = {
0: "禁用",
1: "正常",
2: "未验证",
};
return statusMap[status];
},
},
methods: {
/**-------------------------生产企业资质---------------------*/
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
customerId: null,
companyName: "",
creditCode: "",
placeArea: "",
auditStatus: "",
page: 1,
limit: 20,
};
this.getList();
this.registrationList = [];
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
this.registrationList = [];
this.currentManufacturer = null;
},
toViewRegistrationCert(row, num) {
let path = num === 1 ? row.filePath : row.instructions;
window.open(this.fileUrl + path);
},
getList() {
this.loading = true;
this.filterQuery.customerId = this.$store.getters.companyId;
getCompanyBySup(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
hideSearch() {
this.showSearch = !this.showSearch;
},
hideSearch2() {
this.showSearch2 = !this.showSearch2;
},
addInfoDialog(row) {
if (this.$isNotBlank(row)) {
this.enterpriseId = row.id;
this.editType = 1;
this.inputQuery = row;
} else {
this.enterpriseId = null;
this.editType = 0;
this.inputQuery = {
auditStatus: 0,
};
}
this.addInfoVisible = true;
},
closeDialog(type) {
this.addInfoVisible = false;
this.registrationVisible = false;
this.enterpriseId = null;
this.registrationId = null;
this.getList();
this.registrationList = [];
},
handleSizeChange(val) {
this.filterQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
handleCheckedChange(val) {
console.log(val);
console.log(this.check);
},
rejectInfo(row) {
this.$confirm(row.auditComment, "驳回说明", {
confirmButtonText: "确定",
type: "warning",
showCancelButton: false,
}).then(() => {
});
},
deleteDialog(row) {
this.$confirm("删除后将清空该生产企业以及所有关联信息?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
let tQuery = {
id: row.id,
};
deleteCompany(tQuery).then(() => {
this.getList();
});
})
.catch(() => {
});
},
supManufacturerClick(row) {
this.registrationQuery.customerId = row.customerId;
this.registrationQuery.manufacturerIdFk = row.manufacturerId;
this.getRegistrationList();
this.currentManufacturer = row;
},
/**---------------------------配送产品资质----------------------*/
onReset2() {
//
if (this.currentManufacturer != null) {
this.registrationQuery = {
customerId: this.registrationQuery.customerId,
manufacturerIdFk: this.registrationQuery.manufacturerIdFk,
recordProductName: "",
recordCode: "",
recordPeopleName: "",
auditStatus: null,
page: 1,
limit: 20,
};
this.getRegistrationList();
}
},
onSubmit2() {
if (this.currentManufacturer == null) {
this.$message.error("请先选中生产企业!");
return;
}
this.registrationQuery.page = 1;
this.getRegistrationList();
},
registrationDialog(row) {
if (this.currentManufacturer == null) {
this.$message.error("请先选中生产企业!");
return;
}
if (this.$isNotBlank(row)) {
this.registrationId = row.id;
this.curProductQuery = row;
this.curProductQuery.cuStatus = this.currentManufacturer.auditStatus;
this.curProductQuery.manufacturerId =
this.registrationQuery.manufacturerIdFk;
this.formName = "update";
this.editProductType = 1;
} else {
this.editProductType = 0;
this.formName = "add";
this.curProductQuery = {
auditStatus: 0,
cuStatus: this.currentManufacturer.auditStatus,
manufacturerId: this.registrationQuery.manufacturerIdFk,
};
}
this.registrationVisible = true;
},
deleteRegistration(row) {
this.$confirm("是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.certLoading = true;
let tQuery = {
id: row.id,
filePath: row.filePath,
filePath2: row.instructions,
};
deleteRegistration(tQuery)
.then((response) => {
this.certLoading = false;
if (response.code === 20000) {
this.getRegistrationList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
})
.catch(() => {
});
},
closeProductDialog() {
this.registrationVisible = false;
this.enterpriseId = null;
this.registrationId = null;
this.getRegistrationList();
},
getRegistrationList() {
this.registrationLoading = true;
getRegistrationList(this.registrationQuery)
.then((response) => {
this.registrationLoading = false;
this.registrationList = response.data.list || [];
this.certTotal = response.data.total;
})
.catch(() => {
this.registrationLoading = false;
this.registrationList = [];
});
},
supChange(val) {
this.pmQuery.customerId = val;
this.findPMMethod();
},
certHandleCurrentChange(val) {
this.registrationQuery.page = val.page;
this.getRegistrationList();
},
},
components: {
suppliersEnterpriseBasicAdd,
suppliersRegistrationBasic,
},
mounted() {
},
created() {
this.fileUrl =
this.BASE_URL + "/udiwms/image/register/file/getImage?type=image4&name=";
this.getList();
// this.getRegistrationList();
},
};
</script>
<style scoped></style>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,267 @@
<template>
<div>
<el-card class="el-card" v-if="checked">
<el-form size="mini" :model="erpQuery" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="往来单位ID:">
<el-input v-model="erpQuery.unitId" placeholder="请输入往来单位ID" style="width: 90%" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="往来单位:">
<el-input v-model="erpQuery.name" placeholder="往来单位" style="width: 90%" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-search" @click="getErpList"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table :data="erpList" style="width: 100%" border highlight-current-row @current-change="handleCurrentChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="第三方往来单位ID" prop="customid" width="200"></el-table-column>
<el-table-column label="往来单位名称" prop="customname" width="400"></el-table-column>
</el-table>
<pagination
v-show="erpTotal>0"
:total="erpTotal"
:page.sync="erpQuery.page"
:limit.sync="erpQuery.limit"
@pagination="handleErppageChange"
></pagination>
</el-card>
<el-card class="el-card">
<el-form :model="unitQuery" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="往来单位编码:">
<el-input v-model="unitQuery.unitId" style="width: 90%" placeholder="请输入往来单位编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="请设置主系统:">
<el-select v-model="thirdSysFk" style="width: 90%" placeholder="请设置主系统" disabled>
<el-option
v-for="item in thirdSys"
:key="item.value"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left">{{ item.thirdName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="search"></el-button>
<el-button type="primary" size="mini" icon="el-icon-bottom-right" @click="combine"></el-button>
<el-button type="primary" size="mini" icon="el-icon-bottom-right" @click="combineAll"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table :data="unitlList" style="width: 100%" @selection-change="handleSelectionUdiChange" border highlight-current-row>
<el-table-column type="selection" width="55" :selectable="checkSelectable"></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="往来单位编码" prop="id"></el-table-column>
<el-table-column label="往来单位名称"prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="往来单位简写" show-overflow-tooltip prop="spell"></el-table-column>
<el-table-column label="地址" prop="addr" show-overflow-tooltip></el-table-column>
</el-table>
</el-card>
<pagination
v-show="total>0"
:total="total"
:page.sync="unitQuery.page"
:limit.sync="unitQuery.limit"
@pagination="handlepageChange"
></pagination>
</div>
</template>
<script>
import {combine, ucloudUnit, combineAll} from "@/api/basic/basicUnitMaintain";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
export default {
data() {
return {
showSearch: true,
unitQuery: {
page: 1,
limit: 10,
key: "",
thirdSys: null,
},
combineQuery: {
thirdSys: "",
keys: [],
custmandocResponses: [],
},
total: 0,
erpTotal: 0,
checked: false,
unitlList: [],
erpList: [],
currentRow: null,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.unitQuery = {
key: "",
page: 1,
limit: 10,
thirdSys: null,
};
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
handlepageChange(val) {
this.unitQuery.page = val.page;
this.getList();
},
handleErppageChange(val) {
this.erpQuery.page = val;
this.getErpList();
},
checkSelectable(row) {
return !row.checked;
},
search() {
this.unitQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
this.unitQuery.thirdSys = this.thirdSysFk;
ucloudUnit(this.unitQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.unitlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
this.unitlList = [];
this.total = 0;
}
})
.catch(() => {
this.loading = false;
this.unitlList = [];
this.total = 0;
});
},
intentBack() {
this.$router.go(-1);
},
getBasicThirdSys() {
let query = {
enabled: true,
mainSys: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.thirdSysFk = this.thirdSys[0].thirdId;
this.getList();
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
combine() {
let selectData = this.multipleUdiSelection;
var ids = [];
selectData.forEach((obj) => {
ids.push(obj);
});
if (ids.length == 0) {
this.$message.warning("请选择往来单位信息!");
return;
}
this.combineQuery.thirdSys = this.thirdSysFk;
this.combineQuery.custmandocResponses = ids;
combine(this.combineQuery)
.then((response) => {
if (response.code == 20000) {
this.$emit("closeMain", true);
} else {
this.$emit("closeMain", false);
}
})
.catch(() => {
this.$emit("closeMain", false);
});
},
combineAll() {
this.$confirm("此操作将在后台自动选入所有查询结果, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.unitQuery.thirdSys = this.thirdSysFk;
combineAll(this.unitQuery)
.then((response) => {
if (response.code == 20000) {
this.$emit("closeMain", true);
} else {
this.$emit("closeMain", false);
}
})
.catch(() => {
this.$emit("closeMain", false);
});
})
.catch(() => {
});
},
handleCurrentChange(val) {
this.currentRow = val;
this.unitQuery.key = this.currentRow.name;
},
handleSelectionUdiChange(val) {
this.multipleUdiSelection = val;
},
},
created() {
this.getBasicThirdSys();
},
};
</script>

@ -0,0 +1,268 @@
<template>
<div>
<el-card class="el-card" v-if="checked">
<el-form :inline="true" :model="erpQuery" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="单位编码:">
<el-input v-model="erpQuery.customname" placeholder="搜索" style="width: 90%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-search" @click="getErpList"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table :data="erpList" style="width: 100%" border highlight-current-row @current-change="handleCurrentChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="第三方往来单位ID" prop="customid" width="200"></el-table-column>
<el-table-column label="往来单位名称" prop="customname" width="400"></el-table-column>
</el-table>
<pagination
v-show="erpTotal>0"
:total="erpTotal"
:page.sync="erpQuery.page"
:limit.sync="erpQuery.limit"
@pagination="handleErppageChange"
></pagination>
</el-card>
<el-card class="el-card">
<el-form :model="unitQuery" label-width="100px" v-show="showSearch" size="mini">
<el-row>
<el-col span="6">
<el-form-item label="往来单位编码:">
<el-input v-model="unitQuery.unitId" style="width: 90%" placeholder="往来单位编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="往来单位:">
<el-input v-model="unitQuery.name" style="width: 90%" placeholder="往来单位" clearable></el-input>
</el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="外部系统:">
<el-select v-model="thirdSysFk" style="width: 90%" placeholder="请选择第三方系统" disabled="true">
<el-option
v-for="item in thirdSys"
:key="item.value"
:label="item.thirdName"
:value="item.thirdId">
<span style="float: left">{{ item.thirdName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="primary" size="mini" icon="el-icon-bottom-right" @click="combine" :loading="combineLoading">选入</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table border highlight-current-row @current-change="handleCurrentChange" :data="unitlList" :row-class-name="tableRowClassName" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="往来单位编码" prop="id"></el-table-column>
<el-table-column label="往来单位名称" prop="name" show-overflow-tooltip></el-table-column>
<el-table-column label="往来单位简写" show-overflow-tooltip prop="spell"></el-table-column>
<el-table-column label="地址" prop="addr"></el-table-column>
</el-table>
</el-card>
<pagination
v-show="total>0"
:total="total"
:page.sync="unitQuery.page"
:limit.sync="unitQuery.limit"
@pagination="handlepageChange"
></pagination>
</div>
</template>
<script>
import {combineSingle, ucloudUnit, removeRl} from "@/api/basic/basicUnitMaintain";
import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
export default {
name: "combinType",
props: {
corpData: {
type: Object,
required: true,
},
defaultSys: {
type: Object,
required: true,
}
},
data() {
return {
showSearch: true,
unitQuery: {
page: 1,
limit: 10,
key: "",
thirdSys: null,
},
combineQuery: {
thirdSys: "",
key: null,
basicErpUnitsResponse: [],
},
total: 0,
erpTotal: 0,
checked: false,
unitlList: [],
erpList: [],
currentRow: null,
multipleUdiSelection: [],
thirdSys: [],
thirdSysFk: null,
combineLoading: false,
};
},
methods: {
handlepageChange(val) {
this.unitQuery.page = val.page;
this.getList();
},
handleErppageChange(val) {
this.erpQuery.page = val;
this.getErpList();
},
searchList() {
this.unitQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.unitQuery = {
page: 1,
limit: 10,
key: "",
thirdSys: null,
}
this.total = 0;
this.getList();
},
getList() {
this.loading = true;
this.unitQuery.thirdSys = this.thirdSysFk;
ucloudUnit(this.unitQuery)
.then((response) => {
console.log(response);
this.loading = false;
if (response.code == 20000) {
this.unitlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
this.unitlList = [];
this.total = 0;
}
})
.catch(() => {
this.loading = false;
this.unitlList = [];
this.total = 0;
});
},
intentBack() {
this.$router.go(-1);
},
getBasicThirdSys() {
let query = {
enabled: true,
};
getBasicThirdSys(query)
.then((response) => {
this.thirdSys = response.data.list || [];
this.thirdSysFk = this.thirdSys[0].thirdId;
if (this.defaultSys != null) {
this.thirdSysFk = this.defaultSys;
}
})
.catch(() => {
this.loading = false;
this.list = [];
});
},
handleCurrentChange(val) {
console.log(val);
this.combineQuery.thirdSys = this.thirdSysFk;
this.combineQuery.key = this.corpData.id;
this.combineQuery.basicErpUnitsResponse = val;
},
combine() {
if (this.combineQuery.key == null) {
this.$message.warning("未选择往来单位!");
return;
}
if (this.combineQuery.basicErpUnitsResponse.checked == true) {
this.$message.warning("该往来单位已被关联,不能重复选入!");
return;
}
this.combineLoading = true;
combineSingle(this.combineQuery)
.then((response) => {
this.combineLoading = false;
this.$emit("cancelDialog", true);
if (response.code == 20000) {
this.$message.success("关联成功!");
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.combineLoading = false;
this.$emit("cancelDialog", false);
});
},
tableRowClassName({row}) {
if (row.checked) return "warning-row";
return "";
},
handleSelectionUdiChange(val) {
console.log("----" + val[0].id);
this.multipleUdiSelection = val;
},
},
created() {
this.getBasicThirdSys();
},
};
</script>
<style scoped>
div /deep/ .el-table .warning-row {
background: #bebebe;
}
div /deep/ .el-table .success-row {
background: #ffffff;
}
</style>

@ -0,0 +1,561 @@
<template>
<div>
<el-card>
<div style="
float: left;
text-align: left;
font-weight: bold;
margin-bottom: 8px;
">
<span>产品标识:</span>
</div>
<el-table :data="detailList" style="width: 100%" border key="3" highlight-current-row>
<el-table-column label="产品最小销售标识" prop="nameCode" show-overflow-tooltip></el-table-column>
<el-table-column label="物资名称" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="包装级别" prop="packLevel" show-overflow-tooltip></el-table-column>
<el-table-column label="包装单位" prop="packUnit" show-overflow-tooltip></el-table-column>
</el-table>
</el-card>
<el-card>
<el-form
:model="editQuery"
:rules="rules"
ref="editQuery"
label-width="100px"
style="margin-top: 20px"
>
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template slot="title">
<p class="form-title">产品标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.nameCode"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>最小包装单元内包含使用单元数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zxxsbzbhsydysl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="editQuery.bhxjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含最小销售包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="editQuery.bhzxxsbzsl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="2">
<template slot="title">
<p class="form-title">产品基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>物资名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.cpmctymc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ggxh"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.hchzsb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="editQuery.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.cplx"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>生产企业:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small" :disabled="true"
splaceholder="请输入内容"
v-model="editQuery.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 65%" :disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证/备案号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.zczbhhzbapzbh"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品描述:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="editQuery.cpms"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="3">
<template slot="title">
<p class="form-title">生产标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含批号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.scbssfbhph"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含序列号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
v-model="editQuery.scbssfbhxlh"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含生产日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.scbssfbhscrq"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含失效日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
v-model="editQuery.scbssfbhsxrq"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="4">
<template slot="title">
<p class="form-title">包装标识信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>上级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="editQuery.sjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装级别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.packLevel"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装层级:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.bzcj"
:disabled="true"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="editQuery.bhxjsl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</el-card>
</div>
</template>
<script>
import {filterByUuid} from "@/api/basic/udiRlCompany";
export default {
name: "SelectDIDetailDialog",
props: {
editQuery: {
type: Object,
required: true,
},
},
data() {
return {
activeNames: ['1'],
detailList: []
}
},
methods: {
getDetailList(detailQuery) {
filterByUuid(detailQuery)
.then((response) => {
this.detailList = response.data || [];
})
.catch(() => {
this.detailList = [];
});
},
},
created() {
//
let ttquery = {
uuid: this.editQuery.uuid,
};
this.getDetailList(ttquery);
},
};
</script>
<style scoped>
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
.itemTag {
float: left;
text-align: right;
margin-top: 5px;
padding-right: 10px;
width: 35%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.edit-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 0px;
}
.el-row {
display: flex;
}
/* .el-col {
border-radius: 4px;
flex-wrap: wrap;
} */
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>

@ -0,0 +1,701 @@
<template>
<div>
<el-card class="el-card">
<div>
<el-form :model="unionQuery" size="mini" label-width="125px" v-show="showSearch">
<el-row>
<el-col :span="18">
<el-form-item class="query-form-item" label="UDI码:">
<el-input v-model="unionQuery.udiCode"
placeholder="请扫描或输入UDI码"
clearable="true"
@keyup.enter.native="keyup_submit($event)"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="销售单元产品标识:" class="query-form-item">
<el-input
v-model="unionQuery.nameCode" clearable="true"
placeholder="请输入完整DI"
@keyup.enter.native="keyup_submit($event)"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="医疗器械注册人:" class="query-form-item">
<el-select
v-model="unionQuery.ylqxzcrbarmc"
filterable
remote
clearable="true"
style="width: 100%"
reserve-keyword
placeholder="请输入医疗器械注册人"
:remote-method="findMethod"
:loading="loading"
@clear="clear"
>
<el-option
v-for="item in fromOptions"
:key="item.ylqxzcrbarmc"
:label="item.ylqxzcrbarmc"
:value="item.ylqxzcrbarmc"
>
<span style="float: left">{{ item.ylqxzcrbarmc }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="器械通用名称:" class="query-form-item">
<el-input
:disabled="unionQuery.ylqxzcrbarmc==null || unionQuery.ylqxzcrbarmc==''"
v-model="unionQuery.cpmctymc" clearable="true"
placeholder="请输入器械通用名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="规格型号:" class="query-form-item">
<el-input
v-model="unionQuery.ggxh" clearable="true"
:disabled="(unionQuery.cpmctymc=='' && unionQuery.nameCode=='' && (unionQuery.ylqxzcrbarmc==null || unionQuery.ylqxzcrbarmc==''))"
placeholder="请输入规格型号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="注册证/备案号:" class="query-form-item">
<el-input
v-model="unionQuery.zczbhhzbapzbh" clearable="true"
:disabled="(unionQuery.cpmctymc=='' && unionQuery.nameCode=='' && (unionQuery.ylqxzcrbarmc==null || unionQuery.ylqxzcrbarmc==''))"
placeholder="请输入注册证/备案号"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="searchList"></el-button>
<el-button type="primary" icon="el-icon-bottom-left" @click="checkCombine"
:loading="combineLoading"
>选入
</el-button
>
<el-button type="primary" icon="el-icon-search" @click="getSuperSeaech" size="mini"
>国家同步库查询
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table
:data="udidlList"
style="width: 100%"
border
v-loading="loading"
highlight-current-row="true"
:row-class-name="tableRowClassName"
@current-change="handleErpChange"
@selection-change="handleSelectionUdiChange"
>
<el-table-column
v-if="relId==null"
type="selection"
:selectable="checkSelectable"
width="55"
></el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="产品标识"
prop="nameCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="物资名称"
prop="cpmctymc"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号"
prop="ggxh"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="医疗器械注册人"
prop="ylqxzcrbarmc"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册证编号"
prop="zczbhhzbapzbh"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="diDetail(scope.row)"
>详情
</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="unionQuery.page"
:limit.sync="unionQuery.limit"
@pagination="getList"
/>
</div>
</el-card>
<el-card class="el-card" v-if="this.isImport">
<div>
<el-form label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="物资名称:" class="query-form-item">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="data.cpmctymc"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品标识:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.nameCode"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="规格型号:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.ggxh"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医疗器械注册人:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="data.ylqxzcrbarmc"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="注册人英文名称:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.ylqxzcrbarywmc"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="器械类别:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.cplx"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="产品类别:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.hchzsb"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类编码:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.flbm"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="商品条码:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.sptm"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医保编码:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.ybbm"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="统一社会信用号:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.tyshxydm"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册证/备案号:" class="query-form-item">
<el-input
style="width: 80%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="data.zczbhhzbapzbh"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-card>
<el-dialog
title="器械信息详情"
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="selectDialog"
width="65%"
append-to-body
v-if="selectDialog"
>
<selectDiDetail :editQuery="diDetails"
></selectDiDetail>
</el-dialog>
</div>
</template>
<script>
import {getUdiInfos, filterRel, filterDict, filterCompany} from "@/api/basic/product/udiInfo";
import {superSearch} from "@/api/basic/udiInfo";
import selectDiDetail from "./SelectDIDetailDialog"
import {batchCombine} from "../../../../api/basic/udiRlCompany";
import {batchDictAdd} from "@/api/basic/UdiBasic";
export default {
name: "closeDialog",
props: {
closeDialog: {
type: Function,
required: true,
},
companyId: {
type: Object,
required: true,
},
filterType: {
type: Object,
required: true,
},
},
data() {
return {
unionQuery: {
page: 1,
limit: 10,
udiCode: null,
nameCode: "",
cpmctymc: "",
ylqxzcrbarmc: null,
ggxh: "",
zczbhhzbapzbh: "",
isCheck: 1
},
cpmctymc1: "",
combineLoading: false,
combineQuery: {
companyId: null,
keys: [],
products: [],
},
checked: true,
udidlList: [],
erpList: [],
pageTotal: 0,
total: 0,
currentRow: null,
fromOptions: [],
loading: false,
erpLloading: false,
multipleUdiSelection: [],
selectDialog: false,
diDetails: null,
showSearch: true,
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.unionQuery = {
page: 1,
limit: 10,
udiCode: null,
nameCode: "",
cpmctymc: "",
ylqxzcrbarmc: null,
ggxh: "",
zczbhhzbapzbh: "",
isCheck: 1
};
this.actDateRange = [];
this.udidlList = [];
},
clear() {
this.unionQuery.ylqxzcrbarmc == null;
this.unionQuery.cpmctymc = null;
},
searchList() {
this.unionQuery.page = 1;
this.getList();
},
getSuperSeaech() {
this.$confirm("此操作将访问国家库查询DI数据, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
if (this.unionQuery.nameCode == "") {
this.$message.warning("请输入完整DI信息进行查询");
return;
}
this.loading = true;
superSearch(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
})
.catch(() => {
});
},
getList() {
if (
this.unionQuery.udiCode == "" &&
this.unionQuery.nameCode == "" &&
this.unionQuery.cpmctymc == "" &&
this.unionQuery.ylqxzcrbarmc == "" &&
this.unionQuery.ggxh == "" &&
this.unionQuery.zczbhhzbapzbh == ""
) {
this.$message.warning("请输入查询条件");
return;
}
this.loading = true;
if (this.filterType == 1) { //
filterDict(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
} else if (this.filterType == 2) { //
filterRel(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
} else {
getUdiInfos(this.unionQuery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.udidlList = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.udidlList = [];
this.total = 0;
});
}
},
hideSearch() {
this.showSearch = !this.showSearch;
},
keyup_submit(event) {
this.unionQuery.page = 1;
this.getList();
event.target.select();
},
checkSelectable(row) {
return !row.check;
},
diDetail(row) {
this.diDetails = row;
this.selectDialog = true;
},
handleCurrentChange(val) {
this.unionQuery.page = val;
this.getList();
},
tableRowClassName({row, rowIndex}) {
if (row.check) return "warning-row";
return "";
},
handleErpChange(val) {
this.cpmctymc1 = val.cpmctymc;
this.currentRow = val;
},
intentBack() {
this.closeDialog();
},
checkCombine() {
this.checkedUdi();
},
checkedUdi() {
let selectData = this.multipleUdiSelection;
let selected = null;
if (this.multipleUdiSelection.length == 0) {
if (this.relId != null) {
this.combineQuery.relId = this.relId;
this.combineQuery.keys.push(this.currentRow.uuid);
if (this.currentRow.check) {
selected = this.currentRow;
}
} else {
this.$message.warning('请选入产品!');
return;
}
} else {
selectData.forEach((obj) => {
if (obj.check) {
selected = obj;
}
this.combineQuery.keys.push(obj.uuid);
});
}
if (selected != null) {
this.$message.warning("UDI编码" + selected.nameCode + "已被选入");
return;
}
this.combineLoading = true;
this.combine();
},
combine() {
this.combineQuery.companyId = this.companyId;
if (this.filterType == 1) { //
batchDictAdd(this.combineQuery)
.then((response) => {
this.combineLoading = false;
if (response.code == 20000) {
this.intentBack();
} else {
this.$message.error(response.message);
this.intentBack();
}
})
.catch(() => {
this.combineLoading = false;
this.$emit("closeUdi", false);
});
} else if (this.filterType == 2) {//
debugger
for (let uuid of this.combineQuery.keys) {
let data = {
uuid: uuid
};
this.combineQuery.products.push(data);
}
batchCombine(this.combineQuery)
.then((response) => {
this.combineLoading = false;
if (response.code == 20000) {
this.intentBack();
} else {
this.$message.error(response.message);
this.intentBack();
}
})
.catch(() => {
this.combineLoading = false;
this.$emit("closeUdi", false);
});
}
},
handleSelectionUdiChange(val) {
this.multipleUdiSelection = val;
},
findMethod(query) {
let cQuery = {
ylqxzcrbarmc: query,
page: 1,
limit: 10,
};
filterCompany(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data || [];
})
.catch(() => {
this.loading = false;
this.fromOptions = [];
});
},
},
components: {
selectDiDetail,
},
created() {
}
};
</script>
<style scoped>
.checkitemTag {
float: left;
text-align: left;
margin-top: 5px;
width: 100%;
}
div /deep/ .el-table .warning-row {
background: #bebebe;
}
div /deep/ .el-table .success-row {
background: #ffffff;
}
.el-card {
margin-right: 20px;
/*transition: all .5s;*/
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
</style>

@ -0,0 +1,597 @@
<template>
<div>
<el-card>
<el-form :model="filterQuery" label-width="120px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="生产企业:">
<el-input v-model="filterQuery.ylqxzcrbarmc" style="width: 90%" placeholder="请输入生产企业/注册备案人"
clearable="true"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item label="注册企业:">-->
<!-- <el-select-->
<!-- v-model="filterQuery.companyIdFk"-->
<!-- style="width: 90%"-->
<!-- filterable-->
<!-- remote-->
<!-- clearable="true"-->
<!-- reserve-keyword-->
<!-- placeholder="请选择注册企业"-->
<!-- :remote-method="findMethod"-->
<!-- :loading="loading"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in fromOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.companyName"-->
<!-- :value="item.id"-->
<!-- >-->
<!-- <span style="float: left">{{ item.companyName }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="6">
<el-form-item label="产品编码:">
<el-input v-model="filterQuery.unionCode" style="width: 90%" placeholder="请输入DI/医保编码/商品条码"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品名称:">
<el-input v-model="filterQuery.cpmctymc" style="width: 90%" placeholder="请输入物资名称"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格型号:">
<el-input v-model="filterQuery.ggxh" style="width: 90%" placeholder="请输入规格型号" clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="注册备案号:">
<el-input v-model="filterQuery.zczbhhzbapzbh" style="width: 90%" placeholder="请输入注册备案号"
clearable="true"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="search"></el-button>
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
:disabled="multiple"
v-hasPermi="['monitor:operlog:add']"
@click="add"
>提交</el-button>
<el-button type="primary" icon="el-icon-bottom-right" @click="selectProduct()"></el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" key="1"
style="width: 100%" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="序号" type="index" prop="noticeId"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip width="80"></el-table-column>
<!-- <el-table-column label="注册企业" prop="companyName" show-overflow-tooltip></el-table-column>-->
<el-table-column label="填报者身份" prop="companyName" show-overflow-tooltip width="90">
<template slot-scope="scope">
<span>{{ companyTypeMap[scope.row.companyType] }}</span>
</template>
</el-table-column>
<el-table-column label="最小销售产品标识" prop="nameCode" show-overflow-tooltip></el-table-column>
<el-table-column label="生产企业" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
<el-table-column width="160" label="操作">
<template slot-scope="scope">
<el-button type="text" @click.native.stop="commit(scope.row)">提交</el-button>
<el-button type="text" @click.native.stop="handleModifyClick(scope.row)">详情</el-button>
<el-button type="text" @click.native.stop="diEdit(scope.row)">编辑</el-button>
<el-button type="text" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
title="产品信息详情"
:visible.sync="editDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
v-if="editDialogVisible"
>
<selectDetail
:detailQuery="detailQuery"
:checked="checked"
@closeUdi="closeUdi"
>
</selectDetail>
</el-dialog>
<el-dialog
title="选入医疗器械信息"
:visible.sync="selectProductVisible"
width="85%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="selectProductVisible"
>
<selectLocalUdi
filterType="2"
:closeDialog="closeDialog"
:companyId="filterQuery.companyIdFk"
></selectLocalUdi>
</el-dialog>
<el-dialog
title="企业医疗器械信息-编辑"
:visible.sync="editDiDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
v-if="editDiDialogVisible"
>
<ProductEdit
:detailQuery="editFormat"
:uuid="uuid"
@closeDialog="closeUdi"
></ProductEdit>
<div style="text-align: center; margin-top: 12px">
<el-button
type="primary"
size="small"
icon="search"
@click="onAddSubmit(false)"
>提交
</el-button>
<el-button
type="primary"
size="small"
icon="search"
@click="cancelDialog"
>取消
</el-button>
</div>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
</div>
</template>
<script>
import selectLocalUdi from "@/views/basic/client/rel/UdiInfoSelectLocalUdi";
import selectDetail from "@/views/basic/client/rel/udilnfoManageSpDetail";
import {
filterRlCompany,
seachCompany,
deleteRel,
updateRel,
addOrders,
addRel,
filterProductInfoDetail
} from '@/api/basic/udiRlCompany'
import ProductEdit from "@/views/basic/product/rel/productEdit";
export default {
data() {
return {
showSearch: true,
//
multiple: true,
filterQuery: {
unionCode: null,
udiCode: null,
ylqxzcrbarmc: "",
cpmctymc: "",
nameCode: "",
ggxh: null,
page: 1,
limit: 20,
addType: 1,
thrPiId: null,
filterType: null,
companyName: null,
companyIdFk: null,
},
ids: [], //
uuidList: [],
uuid: null,
single: true, //
fromOptions: [],
editQuery: null,
detailQuery: null,
defaultSys: null,
isImport: false,
isImportUdi: false,
isUploadSmp: false,
isSpCombine: false,
isImportFile: false,
uploadFileUrl: null,
checked: false,
list: [],
detailList: [],
sysList: [],
filterList: [],
total: 0,
thirdNo: "",
originUuid: null,
thirdId: null,
relId: "",
thisData: {
nameCode: null,
cpmctymc: null,
ggxh: null
},
selectProductVisible: false,
multipleSelection: [],
editDialogVisible: false, //
selectUdiDialogVisible: false, //
selectErpDialogVisible: false, //ERP
selectLocalVisible: false, //UDI
selectVersionVisible: false,
isUseDyCheck: false,
loading: false,
activeNames: ['1'],
editSingleDiDialogVisible: false,
companyTypeMap: {
1: "生产企业",
2: "代理商",
3: "购买方",
},
editDiDialogVisible: false,
editFormat: {},
};
},
methods: {
//
add(row){
const addids = row.uuid || this.ids
//this.$modal.msgSuccess(addids);
this.$modal.confirm('是否确认提交所选数据项?').then(() => {
addOrders(addids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
}).catch(() => {});
},
//
commit(row){
let tquery = {
uuid: row.uuid + "",
};
filterProductInfoDetail(tquery)
.then((response) => {
if (response.code == 20000) {
this.$message({
type: "success",
message: "提交成功!",
});
}else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
lockStatus: null,
unionCode: null,
udiCode: null,
ylqxzcrbarmc: "",
cpmctymc: "",
thrPiId: null,
nameCode: "",
ggxh: null,
page: 1,
limit: 20,
addType: 1,
};
this.total = 0;
this.list = [];
this.getList();
},
reset() {
this.form = {
noticeId: undefined,
// noticeTitle: undefined,
// noticeType: undefined,
// noticeContent: undefined,
// status: "0"
};
this.resetForm("form");
},
search() {
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
getList() {
this.loading = true;
filterRlCompany(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
keyup_submit(event) {
this.filterQuery.page = 1;
this.getList();
event.target.select();
},
handleDetail(row) {
this.editQuery = row;
},
deleteOrders(data) {
this.loading = true;
let tquery = {
id: data.id + "",
};
deleteRel(tquery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
//
adddanxuan(data) {
this.loading = true;
let tquery = {
id: data.id + "",
};
this.$message.error(tquery);
addRel(tquery)
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "列表单选提交成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uuid)
this.multiple = !selection.length
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
//adddanxuan
addDialog(rowId) {
this.$confirm("此操作将提交该产品信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.adddanxuan(rowId);
})
.catch(() => {
});
},
//
selectProduct() {
// if (this.$isBlank(this.filterQuery.companyIdFk)) {
// this.$message.error("");
// return;
// }
this.selectProductVisible = true;
},
cancelDialog() {
this.editDiDialogVisible = false;
this.editDialogVisible = false;
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
handleModifyClick(row) {
this.uuid = row.uuid;
this.isImport = false;
this.thisData = row;
this.editDialogVisible = true;
this.detailQuery = row;
this.checked = row.isUseDy == 1;
},
closeUdi(val) {
this.selectUdiDialogVisible = false;
this.selectErpDialogVisible = false;
this.selectLocalVisible = false;
this.editDiDialogVisible = false;
this.getList();
},
selectVersion() {
this.selectVersionVisible = true;
this.uuid = this.editQuery.uuid;
this.originUuid = this.editQuery.originUuid;
},
closeDialog() {
this.selectErpDialogVisible = false;
this.selectLocalVisible = false;
this.selectVersionVisible = false;
this.selectProductVisible = false;
this.getList();
},
findMethod(query) {
this.fromOptions = [];
let cQuery = {
searchKey: query,
page: 1,
limit: 10,
};
seachCompany(cQuery)
.then((response) => {
this.loading = false;
this.fromOptions = response.data.list || [];
})
.catch(() => {
this.loading = false;
this.fromOptions = [];
});
},
//
diEdit(row) {
this.uuid = row.uuid;
this.editFormat = JSON.parse(JSON.stringify(row));
this.editDiDialogVisible = true;
},
//
onAddSubmit(relSubmit) {
this.editFormat.relSubmit = relSubmit;
updateRel(this.editFormat)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.cancelDialog();
this.editDiDialogVisible = false;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.cancelDialog();
});
},
}
,
mounted() {
}
,
components: {
selectLocalUdi,
selectDetail, ProductEdit
}
,
created() {
this.getList();
this.findMethod();
}
,
}
;
</script>
<style scoped>
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 25%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.el-row {
display: flex;
flex-wrap: wrap;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>

@ -0,0 +1,558 @@
<template>
<div>
<el-card>
<el-table v-loading="loading" :data="detailList" style="width: 100%; margin-top: 20px" border key="3"
@current-change="handleDetail">
<el-table-column label="产品标识" prop="nameCode" show-overflow-tooltip></el-table-column>
<el-table-column label="产品通用名" prop="cpmctymc" show-overflow-tooltip></el-table-column>
<el-table-column label="包装级别" prop="packLevel" show-overflow-tooltip></el-table-column>
<el-table-column label="包装层级" prop="bzcj" show-overflow-tooltip></el-table-column>
</el-table>
<el-form :model="detailQuery" :rules="rules" ref="detailQuery" label-width="100px" style="margin-top: 20px">
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template slot="title">
<p class="form-title">产品标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.nameCode"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>最小包装单元内包含使用单元数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.zxxsbzbhsydysl"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="detailQuery.bhxjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含最小销售包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
:disabled="true"
splaceholder="请输入内容"
v-model="detailQuery.bhzxxsbzsl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="2">
<template slot="title">
<p class="form-title">产品基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.cpmctymc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品标识:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.nameCode"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>规格型号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ggxh"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>器械类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.cplx"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品类别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.hchzsb"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>分类编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.flbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>商品条码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.sptm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医保编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ybbm"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>医疗器械注册人:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="ylqxzcrbarmc"
v-model="detailQuery.ylqxzcrbarmc"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册人英文名称:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.ylqxzcrbarywmc"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>统一社会信用号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.tyshxydm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>注册证/备案号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.zczbhhzbapzbh"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>生产企业:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>产品描述:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.cpms"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="3">
<template slot="title">
<p class="form-title">生产标识基本信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含批号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.scbssfbhph"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含序列号:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
v-model="detailQuery.scbssfbhxlh"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含生产日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.scbssfbhscrq"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>是否包含失效日期:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="!checked"
v-model="detailQuery.scbssfbhsxrq"
size="small"
splaceholder="请输入内容"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item name="4">
<template slot="title">
<p class="form-title">包装标识信息</p>
</template>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>上级产品编码:&nbsp;</span>
</div>
<el-input
style="width: 65%"
:disabled="true"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.sjcpbm"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装级别:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.packLevel"
></el-input>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="el-row" type="flex">
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包装层级:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
v-model="detailQuery.bzcj"
:disabled="true"
></el-input>
</div>
</el-col>
<el-col :span="12" class="el-col">
<div class="text item">
<div class="itemTag">
<span>包含下级包装数量:&nbsp;</span>
</div>
<el-input
style="width: 65%"
size="small"
splaceholder="请输入内容"
:disabled="true"
v-model="detailQuery.bhxjsl"
></el-input>
</div>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
</el-form>
</el-card>
</div>
</template>
<script>
import {filterByUuid} from "@/api/basic/udiRlCompany";
export default {
name: "udilnfoManageSpDetail",
props: {
detailQuery: {
type: Object,
required: true,
},
checked: {
type: Boolean,
required: true,
},
},
data() {
return {
sysList: [],
detailList: [],
}
},
methods: {
getDetailList() {
let ttquery = {
uuid: this.detailQuery.uuid
};
this.loading = true;
filterByUuid(ttquery)
.then((response) => {
this.isUseDyCheck = false;
this.loading = false;
this.detailList = response.data || [];
this.detailList.forEach((item, index, array) => {
if (item.zxxsbzbhsydysl > 1) {
this.isUseDyCheck = true;
}
});
})
.catch(() => {
this.loading = false;
this.detailList = [];
});
},
},
created() {
this.getDetailList(this.detailQuery.id);
}
}
</script>
<style scoped>
.itemTag {
float: left;
text-align: right;
margin-top: 5px;
padding-right: 10px;
width: 35%;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
.query-form-item {
display: block !important;
margin-right: 10px;
margin-bottom: 5px;
}
.edit-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 0px;
}
.el-row {
display: flex;
flex-wrap: wrap;
margin-bottom: 6px;
}
.el-col {
border-radius: 4px;
flex-wrap: wrap;
}
.el-table .cell.el-tooltip {
white-space: pre-wrap;
}
.form-title {
font-size: 16px;
font-family: Noto Sans SC;
font-weight: bold;
color: #303133;
padding-bottom: 17px;
padding-top: 17px;
}
</style>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,452 @@
<template>
<div>
<el-card>
<el-form :model="conpanyUserQuery" class="query-form" label-width="120px">
<el-row>
<el-col :span="7">
<el-form-item label="用户账号:" >
<el-input v-model="conpanyUserQuery.userName" style="width: 100%" placeholder="请输入用户账号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<!--<el-form-item label="状态:">-->
<!-- <el-select v-model="query.userFlag" style="width: 100%" placeholder="请选择状态">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="禁用" value="0"></el-option>-->
<!-- <el-option label="正常" value="1"></el-option>-->
<!-- <el-option label="未验证" value="2"></el-option>-->
<!-- </el-select>-->
<!--</el-form-item>-->
</el-col>
<!--
<el-form-item class="query1-form-item">
<el-select v-model="query.roleId" placeholder="角色">
<el-option label="全部角色" value=""></el-option>
<el-option v-for="item in companyUserRoles" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
-->
<el-col :span="9">
<el-form-item>
<el-button-group style="display:flex;">
<el-button
type="primary"
icon="el-icon-refresh"
@click="companyUserOnReset"
>重置</el-button>
<el-button type="primary" icon="search" @click="onCompanyUserSubmit"
>查询</el-button
>
<el-button type="primary" @click.native="handleCompanyUserForm(null, null)"
>新增</el-button>
</el-button-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="loading" :data="companyUserList" style="width: 100%" border highlight-current-row>
<el-table-column type="index" width="50"> </el-table-column>
<el-table-column label="用户账号" prop="userName" > </el-table-column>
<el-table-column label="系统负责人名称" prop="name" >
</el-table-column>
<el-table-column label="系统负责人电话" prop="tel" >
</el-table-column>
<el-table-column label="系统负责人qq" prop="qq" >
</el-table-column>
<el-table-column label="系统负责人微信" prop="weChat" >
</el-table-column>
<el-table-column label="系统负责人邮箱" prop="email" >
</el-table-column>
<el-table-column label="创建时间" prop="createTime" >
</el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native="handleCompanyUserForm(scope.$index, scope.row)"
>编辑
</el-button>
<el-button
type="text"
size="small"
@click.native="handleCompanyUserDel(scope.$index, scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="conpanyUserTotal>0"
:total="conpanyUserTotal"
:limit.sync="conpanyUserQuery.limit"
:page.sync="conpanyUserQuery.page"
@pagination="handleCurrentCompanyUserChange"
></pagination>
<!--表单-->
<el-dialog
:title="formMap[formName]"
:visible.sync="companyUserFormVisible"
:before-close="hideCompanyUserForm"
append-to-body
:modal-append-to-body="false"
:close-on-click-modal="false"
width="60%"
>
<el-form :model="companyUserFormData" :rules="formRules" ref="dataCompanyUserForm" label-width="120px">
<el-row >
<el-col :span="11" >
<el-form-item label="系统负责人名称" prop="name">
<el-input
v-model="companyUserFormData.name"
style="width: 90%"
size="small"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" >
<el-form-item label="用户账号" prop="userName">
<el-input v-model="companyUserFormData.userName" size="small" style="width: 90%" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11" >
<el-form-item label="登录密码" prop="password">
<el-input
type="password"
size="small"
v-model="companyUserFormData.password"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" >
<el-form-item label="确认密码" prop="checkPassword">
<el-input
type="password"
size="small"
v-model="companyUserFormData.checkPassword"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11" >
<el-form-item label="系统负责人电话" prop="tel">
<el-input
size="small"
v-model="companyUserFormData.tel"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" >
<el-form-item label="系统负责人qq" prop="qq">
<el-input
size="small"
v-model="companyUserFormData.qq"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11" >
<el-form-item label="系统负责人微信" prop="weChat">
<el-input
size="small"
v-model="companyUserFormData.weChat"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" >
<el-form-item label="系统负责人邮箱" prop="email">
<el-input
size="small"
v-model="companyUserFormData.email"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideCompanyUserForm" size="small">取消</el-button>
<el-button
type="primary"
size="small"
@click.native="formCompanyUserSubmit()"
:companyUserLoading="companyUserFormLoading"
>提交</el-button
>
</div>
</el-dialog>
</el-card>
</div>
</template>
<script>
import { filterList ,updatePerSon,daletePerSon} from "@/api/sup/userPerson";
const formJson = {
id: "",
userName: "",
name: "",
tel: "",
qq: "",
weChat: "",
email: "",
createTime: "",
companyId:"",
};
export default {
name: "currentCustomer",
props: {
currentCustomer: "",
closeCustomerDialog: {
type: Function,
required: true,
},
},
data() {
return {
companyUserRoles: [],
conpanyUserQuery: {
userName: "",
name: "",
page: 1,
limit: 20,
tel: "",
qq: "",
weChat: "",
email: "",
createTime: "",
companyId:"",
},
companyUserList: [],
conpanyUserTotal: 0,
companyUserLoading: true,
index: null,
formName: null,
formMap: {
add: "新增",
edit: "编辑",
},
userInfo: {
customerId: "",
userId: "",
companyUserRoles: [],
},
companyUserFormLoading: false,
companyUserFormVisible: false,
companyUserFormData: formJson,
formRules: {},
addRules: {
userName: [{ required: true, message: "请输入用户账号", trigger: "blur" }],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{ validator: validatePass, trigger: "blur" },
],
checkPassword: [
{
required: true,
message: "请再次输入密码",
trigger: "blur",
},
{ validator: validatePass2, trigger: "blur" },
],
},
editRules: {
userName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{ validator: validatePass, trigger: "blur" },
],
checkPassword: [
{
required: true,
message: "请再次输入密码",
trigger: "blur",
},
{ validator: validatePass2, trigger: "blur" },
],
},
deleteLoading: false,
currentCustomerId: this.$store.getters.customerId
};
let validatePass = (rule, value, callback) => {
debugger
if (value === "") {
callback(new Error("请输入密码"));
} else {
callback();
}
};
let validatePass2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.companyUserFormData.password) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
},
methods: {
companyUserOnReset() {
this.$router.push({
path: "",
});
this.conpanyUserQuery = {
userName: "",
name: "",
page: 1,
limit: 20,
tel: "",
qq: "",
weChat: "",
email: "",
createTime: "",
companyId: this.currentCustomer,
};
this.getCompanyUserList();
},
onCompanyUserSubmit() {
this.conpanyUserQuery.page = 1;
this.getCompanyUserList();
},
handleCurrentCompanyUserChange(val) {
this.conpanyUserQuery.page = val.page;
this.getCompanyUserList();
},
getCompanyUserList() {
this.companyUserLoading = true;
filterList(this.conpanyUserQuery)
.then((response) => {
this.companyUserLoading = false;
this.companyUserList = response.data.list || [];
this.conpanyUserTotal = response.data.total || 0;
})
.catch(() => {
this.companyUserLoading = false;
this.companyUserList = [];
this.conpanyUserTotal = 0;
this.companyUserRoles = [];
});
},
//
resetCompanyUserForm() {
if (this.$refs["dataCompanyUserForm"]) {
//
this.$refs["dataCompanyUserForm"].clearValidate();
//
this.$refs["dataCompanyUserForm"].resetFields();
}
},
//
hideCompanyUserForm() {
//
this.companyUserFormVisible = !this.companyUserFormVisible;
//
this.$refs["dataCompanyUserForm"].resetFields();
return true;
},
//
handleCompanyUserForm(index, row) {
this.companyUserFormVisible = true;
this.companyUserFormData = JSON.parse(JSON.stringify(formJson));
if (row !== null) {
this.companyUserFormData = Object.assign({}, row);
}
this.formName = "add";
this.formRules = this.addRules;
if (index !== null) {
this.index = index;
this.formName = "edit";
this.formRules = this.editRules;
}
},
formCompanyUserSubmit() {
this.$refs["dataCompanyUserForm"].validate((valid) => {
if (valid) {
updatePerSon(this.companyUserFormData)
.then((res) => {
if (res.code == 20000) {
this.$message({
type: "success",
message: "提交成功!",
});
this.closeCustomerDialog();
}
})
}
});
},
//
handleCompanyUserDel(index, row) {
this.$confirm("是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(()=>{
let param={
id:row.id
}
daletePerSon(param)
.then((res)=>{
if(res.code == 20000){
this.$message({
type: "success",
message: "删除成功!",
});
}
this.closeCustomerDialog();
})
}).catch(()=>{
})
},
},
created() {
this.conpanyUserQuery.companyId = this.currentCustomer;
this.getCompanyUserList();
},
};
</script>
<style type="text/scss" lang="scss">
</style>
Loading…
Cancel
Save