阳光编码对照

master
hongtianzai 3 years ago
parent a3c43a9989
commit a3d8697369

@ -0,0 +1,33 @@
import request from "@/utils/request";
export function GetList(param) {
return request({
url: "/udplat/goodsMatch/list",
method: "post",
data: param
});
}
export function GetProductlist(key) {
return request({
url: "/udplat/goodsMatch/productlist",
method: "post",
params: {key}
});
}
export function GetProductDetail(uuid) {
return request({
url: "/udplat/goodsMatch/productDetail",
method: "post",
params: {uuid}
});
}
export function Save(param) {
return request({
url: "/udplat/goodsMatch/save",
method: "post",
data: param
})
}

@ -79,6 +79,7 @@ import udplatHospital from '../views/udplat/udplatHospital';
import udplatManufacture from '../views/udplat/udplatManufacture';
import udplatGoods from '../views/udplat/udplatGoods';
import udplatLog from '../views/udplat/udplatLog';
import udplatGoodsMatch from '../views/udplat/udplatGoodsMatch';
const err401 = r =>
require.ensure([], () => r(require("../views/error/err401.vue")), "home");
@ -696,7 +697,7 @@ export const asyncRouterMap = [
},
},
{
name: "可选目录",
name: "产品目录",
path: "udplatGoods",
component: udplatGoods,
meta: {
@ -710,6 +711,14 @@ export const asyncRouterMap = [
meta: {
authRule: ["UDIDownload/udplatLog"]
},
},
{
name: "产品对照表",
path: "udplatGoodsMatch",
component: udplatGoodsMatch,
meta: {
authRule: ["UDIDownload/udplatGoodsMatch"]
},
}
]
}

@ -0,0 +1,142 @@
<template>
<div>
<el-dialog
:close-on-click-modal="false"
width="900px"
title="选择对照"
:visible.sync="visible"
append-to-body>
<el-card class="el-card">
<el-form
:inline="true"
:model="queryParams"
size="mini">
<el-form-item label="名称">
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
></el-input>
</el-form-item>
<el-form-item>
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span
>
<el-date-picker
:picker-options="pickerOptions"
v-model="dateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
@row-click="rowClick"
>
<el-table-column label="选择" width="50px">
<template slot-scope="scope">
<el-radio :label="scope.row.deliveryGoodId" v-model="selectValue.deliveryGoodId">&nbsp;</el-radio>
</template>
</el-table-column>
<el-table-column label="ID" prop="deliveryGoodId"/>
<el-table-column label="产品名称" prop="productName"/>
<el-table-column label="目录编码" prop="deliveryGoodsCode"/>
<el-table-column label="医保编码" prop="medicalCode"/>
</el-table>
<el-pagination
:current-page="queryParams.page"
:page-size="queryParams.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card>
<select-goods/>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="selectAction"></el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {GetList} from "@/api/udplat/udplatGoods";
import myMinix from './minixs/commMinixs';
export default {
name: "selectGoods",
props:{
dialogVisible:Boolean
},
data(){
return{
selectValue:{
deliveryGoodId:"",
medicalCode:""
}
}
},
computed:{
visible:{
get(){return this.dialogVisible},
set(val){
this.$emit("updateVisible",val);
}
}
},
mixins:[myMinix],
methods:{
getList() {
this.loading = true;
GetList(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
this.loading = false;
this.list = res.data.list || [];
this.total = res.data.total || 0;
}).catch(error => {
this.$message.error(error);
this.loading = false;
})
},
rowClick(row){
console.log(row);
this.selectValue.deliveryGoodId = row.deliveryGoodId;
this.selectValue.medicalCode = row.medicalCode;
},
selectAction(){
this.$emit("selectAction",this.selectValue);
this.visible = false;
}
}
}
</script>
<style scoped>
</style>

@ -91,7 +91,8 @@ export default {
this.$message.error(error);
this.loading = false;
})
},
}
}
}
</script>

@ -0,0 +1,345 @@
<template>
<div>
<el-card class="el-card">
<el-form
:inline="true"
:model="queryParams"
size="mini"
>
<el-form-item label="名称">
<el-input
v-model="queryParams.name"
size="mini"
placeholder="请输入名称"
></el-input>
</el-form-item>
<el-form-item label="阳光编码对照">
<el-select
v-model="queryParams.goodsMatchType"
placeholder="类型"
>
<el-option
v-for="item in matchTypeOption"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="医保编码对照">
<el-select
v-model="queryParams.medicalMatchType"
placeholder="类型"
>
<el-option
v-for="item in matchTypeOption"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<span style="color: #000; margin-left: 10px; margin-right: 6px"
>日期:</span
>
<el-date-picker
:picker-options="pickerOptions"
v-model="dateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
></el-button>
<el-button type="primary" icon="search" @click="onSubmit"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="list"
style="width: 100%"
>
<el-table-column label="产品标识" prop="nameCode"/>
<el-table-column label="产品名称" prop="cpmctymc"/>
<el-table-column label="规格型号" prop="ggxh"/>
<el-table-column label="注册/备案人名称" prop="ylqxzcrbarmc"/>
<el-table-column label="注册/备案证号" prop="zczbhhzbapzbh"/>
<!-- <el-table-column label="产品描述" prop="cpms"/>-->
<el-table-column label="产品key" prop="deviceRecordKey"/>
<el-table-column label="阳光编码" prop="deliveryGoodId"/>
<el-table-column label="医保编码" prop="medicalCode"/>
<el-table-column label="操作" fixed="right" width="80">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="showDetail(scope.row)"
>详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="queryParams.page"
:page-size="queryParams.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
></el-pagination>
</el-card>
<el-dialog title="详情" :close-on-click-modal="false"
:visible.sync="dialog.visible" width="1000px">
<el-card class="el-card">
<div slot="header" style="font-weight:bold;">
<span>产品标识</span>
</div>
<el-table :data="dialog.productlist" style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column prop="nameCode" label="产品标识"></el-table-column>
<el-table-column prop="cpmctymc" label="产品通用名称"></el-table-column>
<el-table-column prop="packLevel" label="包装级别"></el-table-column>
<el-table-column prop="bzcj" label="包装层级"></el-table-column>
</el-table>
</el-card>
<el-card>
<el-form :model="dialog.productDetail" label-position="left" label-width="100px">
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="产品名称" prop="cpmctymc">
<el-input v-model="dialog.productDetail.cpmctymc" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品标识">
<el-input v-model="dialog.productDetail.nameCode" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="规格型号">
<el-input v-model="dialog.productDetail.ggxh" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="器械类别">
<el-input v-model="dialog.productDetail.qxlb" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="产品类别">
<el-input v-model="dialog.productDetail.cplb" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类编码">
<el-input v-model="dialog.productDetail.flbm" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="注册人名称">
<el-input v-model="dialog.productDetail.ylqxzcrbarmc" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="英文名称">
<el-input v-model="dialog.productDetail.ylqxzcrbarywmc" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="信用代码">
<el-input v-model="dialog.productDetail.tyshxydm" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备案证号">
<el-input v-model="dialog.productDetail.zczbhhzbapzbh" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="上级产品编码">
<el-input v-model="dialog.productDetail.sjcpbm" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="包装级别">
<el-input v-model="dialog.productDetail.packLevel" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="包含下级产品编码">
<el-input v-model="dialog.productDetail.bhxjcpbm" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="包含最小销售包装数量">
<el-input v-model="dialog.productDetail.bhzxxsbzsl" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="最小销售标识包含使用单元数量">
<el-input v-model="dialog.productDetail.zxxsbzbhsydysl" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="包含最小销售包装数量">
<el-input v-model="dialog.productDetail.bhzxxsbzsl" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="25">
<el-col :span="12">
<el-form-item label="产品对照码">
<el-input v-model="dialog.productDetail.deliveryGoodId">
<el-button style="padding-right:10px" slot="suffix" type="text" @click="select"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="医保编码">
<el-input v-model="dialog.productDetail.medicalCode" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<select-goods :dialog-visible="dialog2.visible" @selectAction="selectAction" @updateVisible="updateVisible"/>
<div slot="footer" class="dialog-footer">
<el-button @click="dialog.visible = false"> </el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {GetList,GetProductlist,GetProductDetail,Save} from "@/api/udplat/udplatGoodsMatch";
import myMinix from './minixs/commMinixs';
import selectGoods from "./selectGoods";
import SelectGoods from "./selectGoods";
export default {
name: "udplatGoodsMatch",
components: {SelectGoods},
comments:[selectGoods],
mixins:[myMinix],
created() {
this.formReset();
},
data(){
return{
matchTypeOption:[{value:0,label:"全部"},{value:1,label:"已对照"},{value:2,label:"未对照"}],
queryParams: {
page: 1,
limit: 10,
name:"",
goodsMatchType: 0,
medicalMatchType: 0
},
dialog: {
visible: false,
productlist:null,
productDetail: null,
},
dialog2:{
visible: false
}
}
},
methods:{
getList() {
this.loading = true;
GetList(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
//console.log(res);
this.loading = false;
this.list = res.data.list || [];
this.total = res.data.total || 0;
}).catch(error => {
this.$message.error(error);
this.loading = false;
})
},
showDetail(row){
let key=row.deviceRecordKey;
let uuid=row.uuid;
GetProductlist(key).then(res=>{
this.dialog.productlist = res.data;
});
GetProductDetail(uuid).then(res => {
this.dialog.productDetail = res.data;
});
this.dialog.visible = true;
},
select(){
this.dialog2.visible = true;
},
formReset(){
this.dialog.productDetail={
cpmctymc:"",
nameCode:''
}
},
selectAction(value){
console.log(value);
if(value.deliveryGoodId && value.deliveryGoodId != ''){
this.dialog.productDetail.deliveryGoodId = value.deliveryGoodId;
}
if(value.medicalCode && value.medicalCode != '')
this.dialog.productDetail.medicalCode = value.medicalCode;
},
updateVisible(val){
this.dialog2.visible = val;
},
save(){
let param={
deviceRecordKey: this.dialog.productDetail.deviceRecordKey,
deliveryGoodId: this.dialog.productDetail.deliveryGoodId,
medicalCode: this.dialog.productDetail.medicalCode
}
Save(param).then(result => {
if(result.code == 20000){
this.dialog.visible = false;
this.getList();
}else
this.$message.error(result.message);
})
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save