Browse Source

拖拽组件封装,套餐,诊断,项目模板

master
mch 3 years ago
parent
commit
e6172225c6
  1. 4
      src/api/api.js
  2. 26
      src/components/compTable.vue
  3. 72
      src/components/publicjs/public.js
  4. 12
      src/router/index.js
  5. 164
      src/views/Home.vue
  6. 152
      src/views/basic-dictionary/MedicalConclusion.vue
  7. 421
      src/views/fee-settings/ItemResultMatch.vue
  8. 428
      src/views/fee-settings/ItemResultTemplate.vue
  9. 383
      src/views/fee-settings/ItemTemplate.vue
  10. 414
      src/views/fee-settings/MedicalPackage.vue

4
src/api/api.js

@ -89,13 +89,13 @@ instance.interceptors.response.use( //你真是一个大聪明 response、reques
if (res.data.code == 1) {
const { data } = res;
return data
} else if (res.data.code == -1) {
} else if (res.code == -1) {
// console.log(res.data.message);
// this.$message({
// message: res.data.message,
// type: 'warning'
// });
Message.error(res.data.message);
Message.error(res.message);
}
// const { data } = res;

26
src/components/compTable.vue

@ -10,10 +10,9 @@
'font-size': '16px',
color: '#8590a6',
}"
ref="multipleTable"
@sort-change="handleSort"
highlight-current-row
@filter-change="filterHandler"
@row-click="handleRowClick"
>
@ -29,7 +28,6 @@
:filtered-value="th.filteredValue"
:filter-multiple="th.filterMultiple"
:min-width="th.minWidth"
>
<template slot-scope="scope">
<ex-slot
@ -39,7 +37,17 @@
:index="scope.$index"
:column="th"
/>
<span v-else>{{ scope.row[th.prop] || "-" }}</span>
<span v-else>{{ scope.row[th.prop] || "" }}</span>
</template>
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i>
</el-tag>
</template>
</el-table-column>
</el-table>
@ -97,7 +105,15 @@ export default {
},
//
handleRowClick(row) {
this.$emit("click-events", row);
// ?
// jsJS
// ?row
// row
this.$refs.multipleTable.setCurrentRow(row);
// multipleTable.
console.log("row", row);
this.$emit("clickevents", row);
},
},
};

72
src/components/publicjs/public.js

@ -0,0 +1,72 @@
import Sortable from "sortablejs";
import { putapi } from "@/api/api";
//拖拽组件初始化
function rowDrop(aa, tableData, isshow, cb) {
const tbody = document.querySelector(aa);//".el-table__body-wrapper tbody"
console.log('tableDatatableData', tableData, isshow, this)
Sortable.create(tbody, {
handle: ".move",
animation: 300,
onEnd({ newIndex, oldIndex }) {
cb()
const currRow = tableData.splice(oldIndex, 1)[0];
tableData.splice(newIndex, 0, currRow);
tableData.map((item, index) => {
if (index == newIndex && index == oldIndex) {
// console.log(item, "新数据");
} else if (index == oldIndex) {
} else if (index == newIndex) {
}
});
console.log(tableData);
console.log(tableData.map((item) => item.displayOrder));
},
});
}
//拖拽排序确定方法
//确定拖拽
// function aassertion() {
// const result = [];
// this.tableData.forEach((item, index) => {
// // index 从0开始的, displayOrder从大到小排
// console.log(item.id);
// console.log(index);
// // const currentDisplayOrder = this.tableData.length -1
// const currentDisplayOrder = this.initTableData[index].displayOrder;
// if (item.displayOrder != currentDisplayOrder) {
// // 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
// result.push({ id: item.id, displayOrder: currentDisplayOrder });
// }
// });
// conlusiondraganddrop({ itemList: result }).then((res) => {
// this.$message.success("操作成功");
// this.isshow = true;
// this.getlist();
// });
// }
function assertions(tableData, initTableData) {
const result = [];
tableData.forEach((item, index) => {
// index 从0开始的, displayOrder从大到小排
console.log(item.id);
console.log(index);
// const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder =initTableData[index].displayOrder;
if (item.displayOrder != currentDisplayOrder) {
// 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
result.push({ id: item.id, displayOrder: currentDisplayOrder });
}
console.log('currentDisplayOrder',currentDisplayOrder);
console.log('item',item);
});
// putapi(url, { itemList: result }).then((res) => {
// this.$message.success("操作成功");
// this.isshow = true;
// this.getlist();
// });
}
export {
rowDrop,
assertions
}

12
src/router/index.js

@ -159,6 +159,18 @@ const routes = [
path: '/item-result-template',
component: () => import('../views/fee-settings/ItemResultTemplate.vue')
},
{
path: '/item-result-match',
component: () => import('../views/fee-settings/ItemResultMatch.vue')
},
{
path: '/item-template',
component: () => import('../views/fee-settings/ItemTemplate.vue')
},
{
path: '/medical-package',
component: () => import('../views/fee-settings/MedicalPackage.vue')
},
]
},
];

164
src/views/Home.vue

@ -12,7 +12,9 @@
操作<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
<el-dropdown-item @click.native="logout"
>退出登录</el-dropdown-item
>
<el-dropdown-item>修改密码</el-dropdown-item>
<el-dropdown-item>螺蛳粉</el-dropdown-item>
</el-dropdown-menu>
@ -23,9 +25,19 @@
<el-container>
<el-aside :width="isCollapse ? '64px' : '220px'">
<el-menu style="height: 100%" default-active="2" class="el-menu-vertical-demo" background-color="#545c64" router
active-text-color="#fff" :unique-opened="true" text-color="#000" @select="aa" :collapse="isCollapse"
:collapse-transition="false">
<el-menu
style="height: 100%"
default-active="2"
class="el-menu-vertical-demo"
background-color="#545c64"
router
active-text-color="#fff"
:unique-opened="true"
text-color="#000"
@select="aa"
:collapse="isCollapse"
:collapse-transition="false"
>
<div class="collapseandunfoled" @click="isCollapse = !isCollapse">
| | |
</div>
@ -34,13 +46,17 @@
<i class="el-icon-document"></i>
<span>用户权限管理</span>
</template>
<el-menu-item index="role"> <i class="el-icon-menu"></i> <span slot="title">角色管理</span>
<el-menu-item index="role">
<i class="el-icon-menu"></i> <span slot="title">角色管理</span>
</el-menu-item>
<el-menu-item index="user-list"> <i class="el-icon-menu"></i> <span slot="title">用户管理</span>
<el-menu-item index="user-list">
<i class="el-icon-menu"></i> <span slot="title">用户管理</span>
</el-menu-item>
<el-menu-item index="organization-units"><i class="el-icon-menu"></i><span slot="title">组织架构</span>
<el-menu-item index="organization-units"
><i class="el-icon-menu"></i><span slot="title">组织架构</span>
</el-menu-item>
<el-menu-item index="audit-log"> <i class="el-icon-menu"></i> <span slot="title">安全日志</span>
<el-menu-item index="audit-log">
<i class="el-icon-menu"></i> <span slot="title">安全日志</span>
</el-menu-item>
</el-submenu>
<el-submenu index="2">
@ -48,52 +64,118 @@
<i class="el-icon-s-tools"></i>
<span>基础字典</span>
</template>
<el-menu-item index="guide-type"><i class="el-icon-menu"></i>导引类别</el-menu-item>
<el-menu-item index="medical-report-type"><i class="el-icon-menu"></i>体检报告类别</el-menu-item>
<el-menu-item index="sex"><i class="el-icon-menu"></i>性别</el-menu-item>
<el-menu-item index="marital-status"><i class="el-icon-menu"></i>婚姻状况</el-menu-item>
<el-menu-item index="nation"><i class="el-icon-menu"></i>民族</el-menu-item>
<el-menu-item index="birth-place"><i class="el-icon-menu"></i>籍贯</el-menu-item>
<el-menu-item index="result-status"><i class="el-icon-menu"></i>结果状态</el-menu-item>
<el-menu-item index="medical-type"><i class="el-icon-menu"></i>体检类别</el-menu-item>
<el-menu-item index="personnel-type"><i class="el-icon-menu"></i>人员类别</el-menu-item>
<el-menu-item index="device-type"><i class="el-icon-menu"></i>仪器类别</el-menu-item>
<el-menu-item index="sample-type"><i class="el-icon-menu"></i>标本类型</el-menu-item>
<el-menu-item index="unit"><i class="el-icon-menu"></i>单位</el-menu-item>
<el-menu-item index="diagnosis-postfix"><i class="el-icon-menu"></i>诊断后缀</el-menu-item>
<el-menu-item index="medical-conclusion-type"><i class="el-icon-menu"></i>体检结论类别</el-menu-item>
<el-menu-item index="medical-conclusion"><i class="el-icon-menu"></i>体检结论</el-menu-item>
<el-menu-item index="sample-container"><i class="el-icon-menu"></i>标本容器</el-menu-item>
<el-menu-item index="common-char-type"><i class="el-icon-menu"></i>常用字符类别</el-menu-item>
<el-menu-item index="common-char"><i class="el-icon-menu"></i>常用字符</el-menu-item>
<el-menu-item index="customer-org-type"><i class="el-icon-menu"></i>客户单位类别</el-menu-item>
<el-menu-item index="item-default-result"><i class="el-icon-menu"></i>项目默认结果</el-menu-item>
<el-menu-item index="diagnosis-level"><i class="el-icon-menu"></i>诊断级别</el-menu-item>
<el-menu-item index="guide-type"
><i class="el-icon-menu"></i>导引类别</el-menu-item
>
<el-menu-item index="medical-report-type"
><i class="el-icon-menu"></i>体检报告类别</el-menu-item
>
<el-menu-item index="sex"
><i class="el-icon-menu"></i>性别</el-menu-item
>
<el-menu-item index="marital-status"
><i class="el-icon-menu"></i>婚姻状况</el-menu-item
>
<el-menu-item index="nation"
><i class="el-icon-menu"></i>民族</el-menu-item
>
<el-menu-item index="birth-place"
><i class="el-icon-menu"></i>籍贯</el-menu-item
>
<el-menu-item index="result-status"
><i class="el-icon-menu"></i>结果状态</el-menu-item
>
<el-menu-item index="medical-type"
><i class="el-icon-menu"></i>体检类别</el-menu-item
>
<el-menu-item index="personnel-type"
><i class="el-icon-menu"></i>人员类别</el-menu-item
>
<el-menu-item index="device-type"
><i class="el-icon-menu"></i>仪器类别</el-menu-item
>
<el-menu-item index="sample-type"
><i class="el-icon-menu"></i>标本类型</el-menu-item
>
<el-menu-item index="unit"
><i class="el-icon-menu"></i>单位</el-menu-item
>
<el-menu-item index="diagnosis-postfix"
><i class="el-icon-menu"></i>诊断后缀</el-menu-item
>
<el-menu-item index="medical-conclusion-type"
><i class="el-icon-menu"></i>体检结论类别</el-menu-item
>
<el-menu-item index="medical-conclusion"
><i class="el-icon-menu"></i>体检结论</el-menu-item
>
<el-menu-item index="sample-container"
><i class="el-icon-menu"></i>标本容器</el-menu-item
>
<el-menu-item index="common-char-type"
><i class="el-icon-menu"></i>常用字符类别</el-menu-item
>
<el-menu-item index="common-char"
><i class="el-icon-menu"></i>常用字符</el-menu-item
>
<el-menu-item index="customer-org-type"
><i class="el-icon-menu"></i>客户单位类别</el-menu-item
>
<el-menu-item index="item-default-result"
><i class="el-icon-menu"></i>项目默认结果</el-menu-item
>
<el-menu-item index="diagnosis-level"
><i class="el-icon-menu"></i>诊断级别</el-menu-item
>
</el-submenu>
<el-submenu index="3">
<template slot="title">
<i class="el-icon-s-tools"></i>
<span>收费设置</span>
</template>
<el-menu-item index="invoice-item-type"><i class="el-icon-menu"></i>发票项目类别</el-menu-item>
<el-menu-item index="pay-mode"><i class="el-icon-menu"></i>支付方式</el-menu-item>
<el-menu-item index="invoice-item-type"
><i class="el-icon-menu"></i>发票项目类别</el-menu-item
>
<el-menu-item index="pay-mode"
><i class="el-icon-menu"></i>支付方式</el-menu-item
>
</el-submenu>
<el-submenu index="4">
<template slot="title">
<i class="el-icon-s-tools"></i>
<span>常用设置</span>
</template>
<el-menu-item index="item-type"><i class="el-icon-menu"></i>项目类别</el-menu-item>
<el-menu-item index="sample-group"><i class="el-icon-menu"></i>条码分组</el-menu-item>
<el-menu-item index="asbitem"><i class="el-icon-menu"></i>组和项目</el-menu-item>
<el-menu-item index="item"><i class="el-icon-menu"></i>项目</el-menu-item>
<el-menu-item index="reference-range"><i class="el-icon-menu"></i>参考范围</el-menu-item>
<el-menu-item index="diagnosis"><i class="el-icon-menu"></i>诊断</el-menu-item>
<el-menu-item index="item-result-template"><i class="el-icon-menu"></i>项目结果模板</el-menu-item>
<el-menu-item index="item-type"
><i class="el-icon-menu"></i>项目类别</el-menu-item
>
<el-menu-item index="sample-group"
><i class="el-icon-menu"></i>条码分组</el-menu-item
>
<el-menu-item index="asbitem"
><i class="el-icon-menu"></i>组和项目</el-menu-item
>
<el-menu-item index="item"
><i class="el-icon-menu"></i>项目</el-menu-item
>
<el-menu-item index="reference-range"
><i class="el-icon-menu"></i>参考范围</el-menu-item
>
<el-menu-item index="diagnosis"
><i class="el-icon-menu"></i>诊断</el-menu-item
>
<el-menu-item index="item-result-template"
><i class="el-icon-menu"></i>项目结果模板</el-menu-item
>
<el-menu-item index="item-result-match"
><i class="el-icon-menu"></i>项目结果匹配</el-menu-item
>
<el-menu-item index="item-template"
><i class="el-icon-menu"></i>项目模板</el-menu-item
>
<el-menu-item index="medical-package"
><i class="el-icon-menu"></i>套餐</el-menu-item
>
</el-submenu>
</el-menu>
</el-aside>
<el-main>

152
src/views/basic-dictionary/MedicalConclusion.vue

@ -4,11 +4,22 @@
<el-card>
<el-row style="margin-top: 20px; margin-left: 15px">
<el-col :span="4">
<el-autocomplete class="inline-input" v-model="page.Filter" :fetch-suggestions="querySearch"
placeholder="请输入内容" @select="handleSelect">
<el-autocomplete
class="inline-input"
v-model="page.Filter"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelect"
>
<template slot-scope="{ item }">
<div class="name" @click="selsearch(item.id, item.medicalConclusionTypeId)">{{ item.displayName }}</div>
</template></el-autocomplete>
<div
class="name"
@click="selsearch(item.id, item.medicalConclusionTypeId)"
>
{{ item.displayName }}
</div>
</template></el-autocomplete
>
<!-- <el-input
v-model="page.Filter"
clearable
@ -22,15 +33,34 @@
> -->
</el-col>
<el-col :span="7" style="margin-left: 5%">
<el-col :span="6" style="margin-top: 10px; margin-left: 10px">类别选择</el-col>
<el-select filterable v-model="Selectvalue" placeholder="请选择" @change="isselctvalue">
<el-option v-for="item in Selectacategory" :key="item.id" :label="item.displayName" :value="item.id">
<el-col :span="6" style="margin-top: 10px; margin-left: 10px"
>类别选择</el-col
>
<el-select
filterable
v-model="Selectvalue"
placeholder="请选择"
@change="isselctvalue"
>
<el-option
v-for="item in Selectacategory"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-col>
</el-row>
<el-table :data="tableData" style="width: 100%; height: 500px" :row-key="form.id"
class="el-table__body-wrapper tbody" @row-click="rowclick" highlight-current-row ref="tableData">
<el-table
:data="tableData"
style="width: 100%; height: 500px"
row-key="id"
class="el-table__body-wrapper tbody"
@row-click="rowclick"
highlight-current-row
ref="tableData"
>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="displayName" label="名称" width="">
@ -44,15 +74,26 @@
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" width="">
</el-table-column>
<el-table-column prop="lastModificationTime" label="修改时间" width="200">
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column label="操作">
<template>
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true">
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i
class="el-icon-d-caret"
style="width: 1rem; height: 1rem"
></i>
</el-tag>
</template>
</el-table-column>
@ -62,7 +103,12 @@
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 9%">
<el-button type="primary" @click="add">新增</el-button>
<el-button type="primary" @click="editpopup" style="margin-left: 0; margin-top: 10px">编辑</el-button>
<el-button
type="primary"
@click="editpopup"
style="margin-left: 0; margin-top: 10px"
>编辑</el-button
>
<div style="margin-top: 10px">
<el-button type="danger" @click="delsrts">删除</el-button>
</div>
@ -72,32 +118,52 @@
<el-button type="primary" @click="toppings">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" :disabled="isshow" @click="assertion">排序</el-button>
<el-button type="primary" :disabled="isshow" @click="assertion"
>排序</el-button
>
<div style="margin-top: 5px">
<el-button type="primary" :disabled="isshow" @click="cancellation">取消</el-button>
<el-button type="primary" :disabled="isshow" @click="cancellation"
>取消</el-button
>
</div>
</div>
</div>
</div>
<!-- 新增或者编辑弹框 -->
<el-dialog :title="title == 1 ? '新增' : '编辑'" :visible.sync="dialogVisible" width="75%">
<el-dialog
:title="title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="75%"
>
<el-form ref="form" :model="form" label-width="80px">
<el-row>
<el-col :span="9">
<el-form-item label="编号">
<el-input v-model="form.id" style="width: 90%" disabled></el-input>
<el-input
v-model="form.id"
style="width: 90%"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="名称">
<el-input v-model="form.displayName" style="width: 80%"></el-input>
<el-input
v-model="form.displayName"
style="width: 80%"
></el-input>
</el-form-item>
</el-col>
<!-- @change="change" -->
<el-col :span="8">
类别
<el-select v-model="selars" placeholder="请选择" @change="change">
<el-option v-for="item in ars" :key="item.id" :label="item.displayName" :value="item.id">
<el-option
v-for="item in ars"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-col>
@ -111,7 +177,11 @@
</el-col>
<el-col :span="6">
<el-form-item label="创建时间">
<el-input :value="form.creationTime | dateFormat" disabled style="width: 90%"></el-input>
<el-input
:value="form.creationTime | dateFormat"
disabled
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
@ -121,7 +191,11 @@
</el-col>
<el-col :span="6">
<el-form-item label="修改时间">
<el-input :value="form.lastModificationTime | dateFormat" disabled style="width: 90%"></el-input>
<el-input
:value="form.lastModificationTime | dateFormat"
disabled
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
</el-form>
@ -133,6 +207,7 @@
</div>
</template>
<script>
import { rowDrop, assertions } from "@/components/publicjs/public";
import Sortable from "sortablejs";
import {
physicallist,
@ -181,9 +256,12 @@ export default {
created() {
this.getlist();
this.getmedicalconclusionlist();
console.log("this.tableData", this.tableData);
},
mounted() {
this.rowDrop();
console.log(this.tableData);
// this.rowDrop();
// console.log(rowDrop());
this.tableData = this.loadAll();
},
@ -194,7 +272,9 @@ export default {
createFilter(queryString) {
return (tableData) => {
return (
tableData.displayName.toLowerCase().indexOf(queryString.toLowerCase()) != -1
tableData.displayName
.toLowerCase()
.indexOf(queryString.toLowerCase()) != -1
);
};
},
@ -247,7 +327,7 @@ export default {
this.form = {};
});
})
.catch(() => { });
.catch(() => {});
}
},
//
@ -256,6 +336,11 @@ export default {
this.isshow = true;
this.getlist();
},
assertiona() {
assertions(this.tableData, this.initTableData);
console.log(assertions(this.tableData));
},
//
assertion() {
const result = [];
@ -344,7 +429,7 @@ export default {
},
//id
rowclick(row) {
console.log("dianji")
console.log("dianji");
quersmedicalid(row.id).then((res) => {
console.log(res);
this.form = res.data;
@ -393,28 +478,37 @@ export default {
// this.initTableData = [...res.data.items];
// this.tableData = res.data.items;
// });
this.getlistM();
},
getlistM(rowsid) {
conclusionacquisition(this.pages).then((res) => {
console.log(res);
console.log("数据", res);
this.initTableData = [...res.data.items];
this.tableData = res.data.items;
if (rowsid != null && rowsid != "") {
var row = this.tableData.filter(item => item.id == rowsid);
var row = this.tableData.filter((item) => item.id == rowsid);
this.$refs.tableData.setCurrentRow(row[0]);
quersmedicalid(rowsid).then((res) => {
this.form = res.data;
});
}
let that = this;
rowDrop(
".el-table__body-wrapper tbody",
this.tableData,
this.isshow,
function () {
that.isshow = false;
}
);
});
},
selsearch(id, typeid) {
this.Selectvalue = typeid;
this.pages.TypeId = typeid;
this.getlistM(id);
}
},
},
};
</script>

421
src/views/fee-settings/ItemResultMatch.vue

@ -0,0 +1,421 @@
<template>
<div class="box">
<div style="width: 150%">
<el-card>
<el-table
:data="tableData"
style="width: 100%"
row-key="id"
class="el-table__body-wrapper tbody"
@row-click="rowclick"
highlight-current-row
>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="creatorName" label="创建者" width="">
</el-table-column>
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" width="">
</el-table-column>
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="result" label="结果" width="">
</el-table-column>
<el-table-column label="操作" width="">
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i
class="el-icon-d-caret"
style="width: 1rem; height: 1rem"
></i>
</el-tag>
</template>
</el-table-column>
</el-table>
<!-- <comp-table
:tableData="tableData"
:tableHeader="tableHeader"
@clickevents="rowclick"
ref="singleTable"
>
</comp-table> -->
</el-card>
<!-- 弹框 -->
<el-dialog
:title="title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="75%"
>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="项目" prop="itemId">
<el-select
filterable
v-model="form.itemId"
placeholder="请选择"
>
<el-option
v-for="item in itemId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结果" prop="result">
<el-input v-model="form.result" style="width: 80%"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="诊断编号" prop="diagnosisId">
<el-select
filterable
v-model="form.diagnosisId"
placeholder="请选择"
>
<el-option
v-for="item in diagnosisId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="onsbmit"> </el-button>
</span>
</el-dialog>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5%">
<el-button type="primary" @click="add">新增</el-button>
<el-button
type="primary"
@click="editpopup"
style="margin-left: 0; margin-top: 10px"
>编辑</el-button
>
<div style="margin-top: 10px">
<el-button type="danger" @click="delets">删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="topping">置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="toppings">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" :disabled="isshow" @click="assertion"
>排序</el-button
>
</div>
<div style="margin-top: 5px">
<el-button type="primary" :disabled="isshow" @click="cancellation"
>取消</el-button
>
</div>
</div>
</div>
</template>
<script>
import { rowDrop } from "@/components/publicjs/public";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getporjectlists } from "@/request/commonapi";
import compTable from "@/components/compTable.vue";
import Sortable from "sortablejs";
export default {
components: { compTable },
data() {
return {
isshow: true,
rules: {
itemId: [{ required: true, message: "请选择项目", trigger: "change" }],
result: [{ required: true, message: "请输入结果", trigger: "blur" }],
diagnosisId: [
{ required: true, message: "请选择诊断编号", trigger: "change" },
],
isNameIntoSummary: [
{ required: true, message: "请选择小结名称", trigger: "change" },
],
isResultIntoSummary: [
{ required: true, message: "请选择进入小结", trigger: "change" },
],
resultStatusId: [
{ required: true, message: "请选择结果状态", trigger: "change" },
],
simpleCode: [
{ required: true, message: "请输入拼音简码", trigger: "change" },
],
},
form: {
itemId: "",
result: "",
diagnosisId: "",
// isNameIntoSummary: "",
// isResultIntoSummary: "",
// resultStatusId: "",
// simpleCode: "",
},
dialogVisible: false,
title: 1,
pages: {
SkipCount: 0,
MaxResultCount: 100,
Sorting: "displayOrder desc",
},
itemId: [], //
diagnosisId: [], //
resultStatusId: [], //
isNameIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
isResultIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
tableData: [],
initTableData: [],
tableHeader: [
// minWidth
{ prop: "id", label: "编号", minWidth: "150px" },
{ prop: `creatorName`, label: "创建者" },
{ prop: `creationTime`, label: "创建时间" },
{ prop: `lastModifierName`, label: "修改者" },
{ prop: `lastModificationTime`, label: "创建时间" },
{ prop: "result", label: "结果" },
// { prop: "simpleCode", label: "" },
],
};
},
created() {
this.getlist();
},
mounted() {
this.rowDrop()
},
methods: {
//
cancellation() {
this.$message.info("取消操作");
this.isshow = true;
this.getlist();
},
//
assertion() {
const result = [];
this.tableData.forEach((item, index) => {
// index 0 displayOrder
console.log(item.id);
// const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder = this.initTableData[index].displayOrder;
if (item.displayOrder != currentDisplayOrder) {
// displayOrder
result.push({ id: item.id, displayOrder: currentDisplayOrder });
}
});
putapi("/api/app/itemresultmatch/updatesortmany", { itemList: result }).then(
(res) => {
this.$message.success("操作成功");
this.isshow = true;
this.getlist();
}
);
},
//
rowDrop() {
this.$nextTick(() => {
const tbody = document.querySelector(".el-table__body-wrapper tbody");
const _this = this;
Sortable.create(tbody, {
handle: ".move",
animation: 300,
onEnd({ newIndex, oldIndex }) {
_this.isshow = false;
const currRow = _this.tableData.splice(oldIndex, 1)[0];
_this.tableData.splice(newIndex, 0, currRow);
_this.tableData.map((item, index) => {
if (index == newIndex && index == oldIndex) {
// console.log(item, "");
} else if (index == oldIndex) {
} else if (index == newIndex) {
}
});
console.log(_this.tableData.map((item) => item.displayOrder));
},
});
});
},
toppings() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemresultmatch/updatemanysort?id=${
this.form.id
}&SortType=${2}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
topping() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemresultmatch/updatemanysort?id=${
this.form.id
}&SortType=${1}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
//
delets(row) {
if (this.form.id == undefined) {
this.$message.warning("请选择删除的数据");
} else {
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/item-result-match/${this.form.id}`).then(
(res) => {
this.$message.success("删除成功");
this.getlist();
}
);
})
.catch(() => {});
}
},
//
editpopup() {
if (this.form.id == undefined) {
this.$message.warning("请点击选择操作的数据");
} else {
this.dialogVisible = true;
this.title = 2;
this.addtoedit();
getapi(`/api/app/item-result-match/${this.form.id}`).then((res) => {
console.log(res);
});
}
},
//
onsbmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == 1) {
postapi("/api/app/item-result-match", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist();
this.dialogVisible = false;
});
} else if (this.title == 2) {
putapi(
`/api/app/item-result-match/${this.form.id}`,
this.form
).then((res) => {
this.$message.success("修改成功");
this.getlist();
this.dialogVisible = false;
});
}
}
});
},
rowclick(val) {
getapi(`/api/app/item-result-match/${val.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
},
handleRowClick(Row) {
console.log(Row);
console.log("1");
},
//
addtoedit() {
//
getporjectlists().then((res) => {
this.itemId = res.data.items;
});
//
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.diagnosisId = res.data.items;
});
//
getapi("/api/app/result-status").then((res) => {
this.resultStatusId = res.data.items;
});
getapi("/api/app/diagnosis/getlistinfilter").then((res) => {});
},
//
add() {
this.addtoedit();
this.dialogVisible = true;
this.title = 1;
this.form = {};
},
getlist() {
getapi("/api/app/item-result-match", this.pages).then((res) => {
console.log(res);
this.tableData = res.data.items;
this.initTableData = [...res.data.items];
});
let that = this;
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>

428
src/views/fee-settings/ItemResultTemplate.vue

@ -1,54 +1,458 @@
<template>
<div class="box">
<div style="width: 95%">
<div style="width: 150%">
<el-card>
<comp-table :tableData="tableData" :tableHeader="tableHeader">
</comp-table>
<el-table
:data="tableData"
style="width: 100%"
row-key="id"
class="el-table__body-wrapper tbody"
@row-click="rowclick"
highlight-current-row
>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="creatorName" label="创建者" width="">
</el-table-column>
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" width="">
</el-table-column>
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="result" label="结果" width="">
</el-table-column>
<el-table-column label="操作" width="">
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i
class="el-icon-d-caret"
style="width: 1rem; height: 1rem"
></i>
</el-tag>
</template>
</el-table-column>
</el-table>
<!-- <comp-table
:tableData="tableData"
:tableHeader="tableHeader"
@clickevents="rowclick"
ref="singleTable"
>
</comp-table> -->
</el-card>
<!-- 弹框 -->
<el-dialog
:title="title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="75%"
>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="项目" prop="itemId">
<el-select
filterable
v-model="form.itemId"
placeholder="请选择"
>
<el-option
v-for="item in itemId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结果" prop="result">
<el-input v-model="form.result" style="width: 80%"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="诊断编号" prop="diagnosisId">
<el-select
filterable
v-model="form.diagnosisId"
placeholder="请选择"
>
<el-option
v-for="item in diagnosisId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="小结名称" prop="isNameIntoSummary">
<el-select
filterable
v-model="form.isNameIntoSummary"
placeholder="请选择"
>
<el-option
v-for="item in isNameIntoSummary"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="进入小结" prop="isResultIntoSummary">
<el-select
filterable
v-model="form.isResultIntoSummary"
placeholder="请选择"
>
<el-option
v-for="item in isResultIntoSummary"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结果状态" prop="resultStatusId">
<el-select
filterable
v-model="form.resultStatusId"
placeholder="请选择"
>
<el-option
v-for="item in resultStatusId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="拼音简码" prop="simpleCode">
<el-input
v-model="form.simpleCode"
style="width: 80%"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="onsbmit"> </el-button>
</span>
</el-dialog>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5%">
<el-button type="primary" @click="add">新增</el-button>
<el-button
type="primary"
@click="editpopup"
style="margin-left: 0; margin-top: 10px"
>编辑</el-button
>
<div style="margin-top: 10px">
<el-button type="danger" @click="delets">删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="topping">置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="toppings">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" :disabled="isshow" @click="assertion"
>排序</el-button
>
</div>
<div style="margin-top: 5px">
<el-button type="primary" :disabled="isshow" @click="cancellation"
>取消</el-button
>
</div>
</div>
</div>
</template>
<script>
import { getapi } from "@/api/api";
import { rowDrop } from "@/components/publicjs/public";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getporjectlists } from "@/request/commonapi";
import compTable from "@/components/compTable.vue";
import Sortable from "sortablejs";
export default {
components: { compTable },
data() {
return {
isshow: true,
rules: {
itemId: [{ required: true, message: "请选择项目", trigger: "change" }],
result: [{ required: true, message: "请输入结果", trigger: "blur" }],
diagnosisId: [
{ required: true, message: "请选择诊断编号", trigger: "change" },
],
isNameIntoSummary: [
{ required: true, message: "请选择小结名称", trigger: "change" },
],
isResultIntoSummary: [
{ required: true, message: "请选择进入小结", trigger: "change" },
],
resultStatusId: [
{ required: true, message: "请选择结果状态", trigger: "change" },
],
simpleCode: [
{ required: true, message: "请输入拼音简码", trigger: "change" },
],
},
form: {
itemId: "",
result: "",
diagnosisId: "",
isNameIntoSummary: "",
isResultIntoSummary: "",
resultStatusId: "",
simpleCode: "",
},
dialogVisible: false,
title: 1,
pages: {
SkipCount: 0,
MaxResultCount: 100,
Sorting: "displayOrder desc",
},
itemId: [], //
diagnosisId: [], //
resultStatusId: [], //
isNameIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
isResultIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
tableData: [],
initTableData: [],
tableHeader: [
// minWidth
{ prop: "id", label: "编号", },
{ prop: "creationTime", label: "创建时间", },
{ prop: "displayName", label: "名称", },
{ prop: "displayName", label: "名称", },
{ prop: "id", label: "编号", minWidth: "150px" },
{ prop: `creatorName`, label: "创建者" },
{ prop: `creationTime`, label: "创建时间" },
{ prop: `lastModifierName`, label: "修改者" },
{ prop: `lastModificationTime`, label: "创建时间" },
{ prop: "result", label: "结果" },
// { prop: "simpleCode", label: "" },
],
};
},
created() {
this.getlist();
},
mounted() {
this.rowDrop()
},
methods: {
//
cancellation() {
this.$message.info("取消操作");
this.isshow = true;
this.getlist();
},
//
assertion() {
const result = [];
this.tableData.forEach((item, index) => {
// index 0 displayOrder
console.log(item.id);
// const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder = this.initTableData[index].displayOrder;
if (item.displayOrder != currentDisplayOrder) {
// displayOrder
result.push({ id: item.id, displayOrder: currentDisplayOrder });
}
});
putapi("/api/app/itemresulttemplate/updatesortmany", { itemList: result }).then(
(res) => {
this.$message.success("操作成功");
this.isshow = true;
this.getlist();
}
);
},
//
rowDrop() {
this.$nextTick(() => {
const tbody = document.querySelector(".el-table__body-wrapper tbody");
const _this = this;
Sortable.create(tbody, {
handle: ".move",
animation: 300,
onEnd({ newIndex, oldIndex }) {
_this.isshow = false;
const currRow = _this.tableData.splice(oldIndex, 1)[0];
_this.tableData.splice(newIndex, 0, currRow);
_this.tableData.map((item, index) => {
if (index == newIndex && index == oldIndex) {
// console.log(item, "");
} else if (index == oldIndex) {
} else if (index == newIndex) {
}
});
console.log(_this.tableData.map((item) => item.displayOrder));
},
});
});
},
toppings() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemresulttemplate/updatemanysort?id=${
this.form.id
}&SortType=${2}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
topping() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemresulttemplate/updatemanysort?id=${
this.form.id
}&SortType=${1}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
//
delets(row) {
if (this.form.id == undefined) {
this.$message.warning("请选择删除的数据");
} else {
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/item-result-template/${this.form.id}`).then(
(res) => {
this.$message.success("删除成功");
this.getlist();
}
);
})
.catch(() => {});
}
},
//
editpopup() {
if (this.form.id == undefined) {
this.$message.warning("请点击选择操作的数据");
} else {
this.dialogVisible = true;
this.title = 2;
this.addtoedit();
getapi(`/api/app/item-result-template/${this.form.id}`).then((res) => {
console.log(res);
});
}
},
//
onsbmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == 1) {
postapi("/api/app/item-result-template", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist();
this.dialogVisible = false;
});
} else if (this.title == 2) {
putapi(
`/api/app/item-result-template/${this.form.id}`,
this.form
).then((res) => {
this.$message.success("修改成功");
this.getlist();
this.dialogVisible = false;
});
}
}
});
},
rowclick(val) {
getapi(`/api/app/item-result-template/${val.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
},
handleRowClick(Row) {
console.log(Row);
console.log("1");
},
//
addtoedit() {
//
getporjectlists().then((res) => {
this.itemId = res.data.items;
});
getapi("/api/app/diagnosis/getlistinfilter").then((res) => {
console.log(res);
//
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.diagnosisId = res.data.items;
});
//
getapi("/api/app/result-status").then((res) => {
this.resultStatusId = res.data.items;
});
getapi("/api/app/diagnosis/getlistinfilter").then((res) => {});
},
//
add() {
@ -58,10 +462,12 @@ export default {
this.form = {};
},
getlist() {
getapi("/api/app/item/in-filter", this.pages).then((res) => {
getapi("/api/app/item-result-template", this.pages).then((res) => {
console.log(res);
this.tableData = res.data.items;
this.initTableData = [...res.data.items];
});
let that = this;
},
},
};

383
src/views/fee-settings/ItemTemplate.vue

@ -0,0 +1,383 @@
<template>
<div class="box">
<div style="width: 95%">
<el-card>
<el-table
:data="tableData"
style="width: 100%"
row-key="id"
class="el-table__body-wrapper tbody"
@row-click="rowclick"
highlight-current-row
>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="displayName" label="名称"> </el-table-column>
<el-table-column prop="creatorName" label="创建者" width="150">
</el-table-column>
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" width="">
</el-table-column>
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="result" label="结果" width="">
</el-table-column>
<el-table-column label="操作" width="">
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i
class="el-icon-d-caret"
style="width: 1rem; height: 1rem"
></i>
</el-tag>
</template>
</el-table-column>
</el-table>
<!-- <comp-table
:tableData="tableData"
:tableHeader="tableHeader"
@clickevents="rowclick"
ref="singleTable"
>
</comp-table> -->
</el-card>
<!-- 弹框 -->
<el-dialog
:title="title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="75%"
>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="名称" prop="displayName">
<el-input
v-model="form.displayName"
style="width: 80%"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="onsbmit"> </el-button>
</span>
</el-dialog>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5%">
<el-button type="primary" @click="add">新增</el-button>
<el-button
type="primary"
@click="editpopup"
style="margin-left: 0; margin-top: 10px"
>编辑</el-button
>
<div style="margin-top: 10px">
<el-button type="danger" @click="delets">删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="topping">置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="toppings">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" :disabled="isshow" @click="assertion"
>排序</el-button
>
</div>
<div style="margin-top: 5px">
<el-button type="primary" :disabled="isshow" @click="cancellation"
>取消</el-button
>
</div>
</div>
</div>
</template>
<script>
import { rowDrop } from "@/components/publicjs/public";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getporjectlists } from "@/request/commonapi";
import compTable from "@/components/compTable.vue";
import Sortable from "sortablejs";
export default {
components: { compTable },
data() {
return {
isshow: true,
rules: {
itemId: [{ required: true, message: "请选择项目", trigger: "change" }],
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
diagnosisId: [
{ required: true, message: "请选择诊断编号", trigger: "change" },
],
isNameIntoSummary: [
{ required: true, message: "请选择小结名称", trigger: "change" },
],
isResultIntoSummary: [
{ required: true, message: "请选择进入小结", trigger: "change" },
],
resultStatusId: [
{ required: true, message: "请选择结果状态", trigger: "change" },
],
simpleCode: [
{ required: true, message: "请输入拼音简码", trigger: "change" },
],
},
form: {
displayName: "",
},
dialogVisible: false,
title: 1,
pages: {
SkipCount: 0,
MaxResultCount: 100,
Sorting: "displayOrder desc",
},
itemId: [], //
diagnosisId: [], //
resultStatusId: [], //
isNameIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
isResultIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
tableData: [],
initTableData: [],
tableHeader: [
// minWidth
{ prop: "id", label: "编号", minWidth: "150px" },
{ prop: `creatorName`, label: "创建者" },
{ prop: `creationTime`, label: "创建时间" },
{ prop: `lastModifierName`, label: "修改者" },
{ prop: `lastModificationTime`, label: "创建时间" },
{ prop: "result", label: "结果" },
// { prop: "simpleCode", label: "" },
],
};
},
created() {
this.getlist();
},
mounted() {
this.rowDrop();
},
methods: {
//
cancellation() {
this.$message.info("取消操作");
this.isshow = true;
this.getlist();
},
//
assertion() {
const result = [];
this.tableData.forEach((item, index) => {
// index 0 displayOrder
console.log(item.id);
// const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder = this.initTableData[index].displayOrder;
if (item.displayOrder != currentDisplayOrder) {
// displayOrder
result.push({ id: item.id, displayOrder: currentDisplayOrder });
}
});
putapi("/api/app/itemtemplate/updatesortmany", {
itemList: result,
}).then((res) => {
this.$message.success("操作成功");
this.isshow = true;
this.getlist();
});
},
//
rowDrop() {
this.$nextTick(() => {
const tbody = document.querySelector(".el-table__body-wrapper tbody");
const _this = this;
Sortable.create(tbody, {
handle: ".move",
animation: 300,
onEnd({ newIndex, oldIndex }) {
_this.isshow = false;
const currRow = _this.tableData.splice(oldIndex, 1)[0];
_this.tableData.splice(newIndex, 0, currRow);
_this.tableData.map((item, index) => {
if (index == newIndex && index == oldIndex) {
// console.log(item, "");
} else if (index == oldIndex) {
} else if (index == newIndex) {
}
});
console.log(_this.tableData.map((item) => item.displayOrder));
},
});
});
},
toppings() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemtemplate/updatemanysort?id=${
this.form.id
}&SortType=${2}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
topping() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/itemtemplate/updatemanysort?id=${
this.form.id
}&SortType=${1}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
//
delets(row) {
if (this.form.id == undefined) {
this.$message.warning("请选择删除的数据");
} else {
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/item-template/${this.form.id}`).then((res) => {
this.$message.success("删除成功");
this.getlist();
});
})
.catch(() => {});
}
},
//
editpopup() {
if (this.form.id == undefined) {
this.$message.warning("请点击选择操作的数据");
} else {
this.dialogVisible = true;
this.title = 2;
// this.addtoedit();
getapi(`/api/app/item-template/${this.form.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
}
},
//
onsbmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == 1) {
postapi("/api/app/item-template/", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist();
this.dialogVisible = false;
});
} else if (this.title == 2) {
putapi(`/api/app/item-template/${this.form.id}`, this.form).then(
(res) => {
this.$message.success("修改成功");
this.getlist();
this.dialogVisible = false;
}
);
}
}
});
},
rowclick(val) {
getapi(`/api/app/item-template/${val.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
},
handleRowClick(Row) {
console.log(Row);
console.log("1");
},
//
addtoedit() {
//
getporjectlists().then((res) => {
this.itemId = res.data.items;
});
//
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.diagnosisId = res.data.items;
});
//
getapi("/api/app/result-status").then((res) => {
this.resultStatusId = res.data.items;
});
getapi("/api/app/diagnosis/getlistinfilter").then((res) => {});
},
//
add() {
// this.addtoedit();
this.dialogVisible = true;
this.title = 1;
this.form = {};
},
getlist() {
getapi("/api/app/item-template/in-filter", this.pages).then((res) => {
console.log(res);
this.tableData = res.data.items;
this.initTableData = [...res.data.items];
});
let that = this;
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>

414
src/views/fee-settings/MedicalPackage.vue

@ -0,0 +1,414 @@
<template>
<div class="box">
<div style="width: 95%">
<el-card>
<el-table
:data="tableData"
style="width: 100%"
row-key="id"
class="el-table__body-wrapper tbody"
@row-click="rowclick"
highlight-current-row
>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="displayName" label="名称"> </el-table-column>
<el-table-column prop="creatorName" label="创建者" width="150">
</el-table-column>
<el-table-column prop="creationTime" label="创建时间" width="200">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" width="">
</el-table-column>
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column label="操作" width="">
<template>
<el-tag
class="move"
style="cursor: move; margin-left: 15px"
draggable="true"
>
<i
class="el-icon-d-caret"
style="width: 1rem; height: 1rem"
></i>
</el-tag>
</template>
</el-table-column>
</el-table>
<!-- <comp-table
:tableData="tableData"
:tableHeader="tableHeader"
@clickevents="rowclick"
ref="singleTable"
>
</comp-table> -->
</el-card>
<!-- 弹框 -->
<el-dialog
:title="title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="75%"
>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="名称" prop="displayName">
<el-input
v-model="form.displayName"
style="width: 80%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="价格" prop="price">
<el-input v-model="form.price" style="width: 80%"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="适用性别" prop="forSexId">
<el-select v-model="form.forSexId" placeholder="请选择">
<el-option
v-for="item in forSexId"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="启用标志" prop="isActive">
<el-select v-model="form.isActive" placeholder="请选择">
<el-option
v-for="item in isActive"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" style="width: 80%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="onsbmit"> </el-button>
</span>
</el-dialog>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px; margin-top: 5%">
<el-button type="primary" @click="add">新增</el-button>
<el-button
type="primary"
@click="editpopup"
style="margin-left: 0; margin-top: 10px"
>编辑</el-button
>
<div style="margin-top: 10px">
<el-button type="danger" @click="delets">删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="topping">置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="toppings">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" :disabled="isshow" @click="assertion"
>排序</el-button
>
</div>
<div style="margin-top: 5px">
<el-button type="primary" :disabled="isshow" @click="cancellation"
>取消</el-button
>
</div>
</div>
</div>
</template>
<script>
import { rowDrop } from "@/components/publicjs/public";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getporjectlists } from "@/request/commonapi";
import compTable from "@/components/compTable.vue";
import Sortable from "sortablejs";
export default {
components: { compTable },
data() {
return {
isshow: true,
rules: {
forSexId: [
{ required: true, message: "请选择性别", trigger: "change" },
],
isActive: [
{ required: true, message: "请选择启用标志", trigger: "change" },
],
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
price: [{ required: true, message: "请输入价格", trigger: "blur" }],
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
},
form: {
displayName: "",
price: "",
forSexId: "",
isActive: "",
remark: "",
},
isActive: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
forSexId: [],
dialogVisible: false,
title: 1,
pages: {
SkipCount: 0,
MaxResultCount: 100,
Sorting: "displayOrder desc",
},
isNameIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
isResultIntoSummary: [
{
value: "N",
label: "否",
},
{
value: "Y",
label: "是",
},
], //
tableData: [],
initTableData: [],
tableHeader: [
// minWidth
{ prop: "id", label: "编号", minWidth: "150px" },
{ prop: `creatorName`, label: "创建者" },
{ prop: `creationTime`, label: "创建时间" },
{ prop: `lastModifierName`, label: "修改者" },
{ prop: `lastModificationTime`, label: "创建时间" },
{ prop: "result", label: "结果" },
// { prop: "simpleCode", label: "" },
],
};
},
created() {
this.getlist();
},
mounted() {
this.rowDrop();
},
methods: {
//
cancellation() {
this.$message.info("取消操作");
this.isshow = true;
this.getlist();
},
//
assertion() {
const result = [];
this.tableData.forEach((item, index) => {
// index 0 displayOrder
console.log(item.id);
// const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder = this.initTableData[index].displayOrder;
if (item.displayOrder != currentDisplayOrder) {
// displayOrder
result.push({ id: item.id, displayOrder: currentDisplayOrder });
}
});
putapi("/api/app/medicalpackage/updatesortmany", {
itemList: result,
}).then((res) => {
this.$message.success("操作成功");
this.isshow = true;
this.getlist();
});
},
//
rowDrop() {
this.$nextTick(() => {
const tbody = document.querySelector(".el-table__body-wrapper tbody");
const _this = this;
Sortable.create(tbody, {
handle: ".move",
animation: 300,
onEnd({ newIndex, oldIndex }) {
_this.isshow = false;
const currRow = _this.tableData.splice(oldIndex, 1)[0];
_this.tableData.splice(newIndex, 0, currRow);
_this.tableData.map((item, index) => {
if (index == newIndex && index == oldIndex) {
// console.log(item, "");
} else if (index == oldIndex) {
} else if (index == newIndex) {
}
});
console.log(_this.tableData.map((item) => item.displayOrder));
},
});
});
},
toppings() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/medicalpackage/updatemanysort?id=${
this.form.id
}&SortType=${2}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
topping() {
if (this.form.id == undefined) {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/medicalpackage/updatemanysort?id=${
this.form.id
}&SortType=${1}`
).then((res) => {
this.$message.success("操作成功");
this.getlist();
});
}
},
//
delets(row) {
if (this.form.id == undefined) {
this.$message.warning("请选择删除的数据");
} else {
this.$confirm("是否确认删除,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletapi(`/api/app/medical-package/${this.form.id}`).then((res) => {
this.$message.success("删除成功");
this.getlist();
});
})
.catch(() => {});
}
},
//
editpopup() {
if (this.form.id == undefined) {
this.$message.warning("请点击选择操作的数据");
} else {
this.dialogVisible = true;
this.title = 2;
this.addtoedit();
getapi(`/api/app/medical-package/${this.form.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
}
},
//
onsbmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == 1) {
this.form.price=Number(this.form.price)
postapi("/api/app/item-template", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist();
this.dialogVisible = false;
});
} else if (this.title == 2) {
putapi(`/api/app/medical-package/${this.form.id}`, this.form).then(
(res) => {
this.$message.success("修改成功");
this.getlist();
this.dialogVisible = false;
}
);
}
}
});
},
rowclick(val) {
getapi(`/api/app/medical-package/${val.id}`).then((res) => {
this.form = res.data;
console.log(res);
});
},
handleRowClick(Row) {
console.log(Row);
console.log("1");
},
//
addtoedit() {
getapi("/api/app/sex").then((res) => {
this.forSexId = res.data;
});
},
//
add() {
this.addtoedit();
this.dialogVisible = true;
this.title = 1;
this.form = {};
},
getlist() {
getapi("/api/app/medical-package/in-filter", this.pages).then((res) => {
console.log(res);
this.tableData = res.data.items;
this.initTableData = [...res.data.items];
});
let that = this;
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>
Loading…
Cancel
Save