123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- <template>
- <el-dialog
- :title="formTitle"
- width="900px"
- :visible.sync="visible"
- :before-close="_close"
- >
- <div>
- <el-form
- :model="form"
- :rules="rules"
- ref="form"
- label-width="100px"
- style="display: flex; flex-wrap: wrap; justify-content: space-between"
- >
- <el-form-item
- label="组套名称 : "
- prop="project_team"
- style="width: 100%"
- >
- <el-input
- v-model="form.project_team"
- placeholder=""
- maxlength="30"
- ></el-input>
- </el-form-item>
- <el-form-item label="组套价格 : " prop="price" style="width: 100%">
- <el-input
- v-model="form.price"
- placeholder=""
- maxlength="30"
- ></el-input>
- </el-form-item>
- <el-form-item label="拼音 : " prop="pinyin" style="width: 50%">
- <el-input
- v-model="form.pinyin"
- placeholder=""
- maxlength="30"
- ></el-input>
- </el-form-item>
- <el-form-item label="五笔 : " prop="wubi" style="width: 50%">
- <el-input
- v-model="form.wubi"
- placeholder=""
- maxlength="30"
- ></el-input>
- </el-form-item>
-
- <el-form-item label="试管颜色 : " prop="tube_color" style="width: 50%">
- <el-select
- v-model="form.tube_color"
- style="width: 160px"
- placeholder="请选择"
- >
- <el-option
- v-for="(item, index) in getDictionaryDataConfig(
- 'system',
- 'tube_color'
- )"
- :key="index"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="组套类型 : " prop="team_type" style="width: 50%">
- <el-select
- v-model="form.team_type"
- style="width: 100%"
- placeholder="请选择"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="备注 : " prop="name" style="width: 100%">
- <el-input
- type="textarea"
- :rows="2"
- placeholder="请输入内容"
- v-model="form.remark"
- ></el-input>
- </el-form-item>
-
- <el-form-item label="组套明细" style="width: 50%">
- <el-select
- v-model="form.project_detail"
- filterable
- placeholder="请选择"
- @change="changeProject"
-
- >
- <el-option
- v-for="item in projectList"
- :key="item.new_id"
- :label="item.project_name"
- :value="item.new_id"
- >
- </el-option>
- </el-select>
- </el-form-item>
-
- <el-form-item label="数量" style="width: 50%">
- <div style="display: flex">
- <el-input
- v-model="form.number"
- style="margin-right: 10px"
- ></el-input>
- <el-button type="primary" @click="addProjectList">添加</el-button>
- </div>
- </el-form-item>
- </el-form>
- <el-form>
- <el-table
- :data="tableData"
- border
- style="100%"
- :row-style="{ color: '#303133' }"
- :header-cell-style="{
- backgroundColor: 'rgb(245, 247, 250)',
- color: '#606266',
- }"
- highlight-current-row
- ref="tab"
- >
- <el-table-column align="center" prop="name" label="分类" width="120">
- <template slot-scope="scope">
- <div>
- {{
- scope.row.type == 2
- ? getId(scope.row.statistical_classification)
- : "耗材"
- }}
- </div>
- </template>
- </el-table-column>
- <el-table-column
- align="center"
- prop="name"
- label="组套明细"
- width="120"
- >
- <template slot-scope="scope">{{ scope.row.project_name }}</template>
- </el-table-column>
- <el-table-column align="center" prop="name" label="数量" width="120">
- <template slot-scope="scope">{{ scope.row.number }}</template>
- </el-table-column>
- <el-table-column align="center" prop="name" label="单位" width="120">
- <template slot-scope="scope">
- <div v-if="scope.row.type == 2">{{ scope.row.unit }}</div>
- <div v-if="scope.row.type == 3">
- {{ scope.row.unit }}
- </div>
- </template>
- </el-table-column>
- <el-table-column align="center" prop="name" label="单价" width="120">
- <template slot-scope="scope">{{ scope.row.price }}</template>
- </el-table-column>
- <el-table-column align="center" prop="name" label="操作">
- <template slot-scope="scope">
- <el-tooltip
- class="item"
- effect="dark"
- content="删除"
- placement="top"
- >
- <el-button
- type="danger"
- icon="el-icon-delete"
- size="small"
- @click="DeleteProject(scope.row.id, scope.$index)"
- ></el-button>
- </el-tooltip>
- </template>
- </el-table-column>
- </el-table>
- </el-form>
- </div>
-
- <div slot="footer" class="dialog-footer">
- <el-button @click="hide">取 消</el-button>
- <el-button type="primary" @click="submitAction('form')">保 存</el-button>
- </div>
- </el-dialog>
- </template>
-
- <script>
- import { getDataConfig, getDictionaryDataConfig } from "@/utils/data";
- import {
- addProjectList,
- DeleteProject,
- getAllProjectList,
- getProjectDetail,
- saveProjectTeam,
- } from "@/api/project/project";
-
- import { saveTeam } from "@/api/his/his";
-
- export default {
- data() {
- return {
- project_name: "",
- visible: false,
- formTitle: "",
- activeName: "first",
- form: {
- project_team: "",
- price: 0,
- pinyin: "",
- wubi: "",
- tube_color: "",
- team_type: "",
- remark: "",
- project_detail: "",
- number: "1",
- },
- options: [
- { value: 1, label: "是" },
- { value: 2, label: "否" },
- ],
- value: "",
- radio: "1",
- rules: {
- project_team: [
- { required: true, message: "请填写组套名称", trigger: "blur" },
- ],
- // pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
- // wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
- price: [{ required: true, message: "请填写价格", trigger: "change" }],
- //team_type: [{ required: true, message: '请填写组套类型', trigger: 'change' }]
- },
- tableData: [],
- projectList: [],
- tabList: [],
- itemList: [],
- };
- },
- methods: {
- getUnit(id) {
- var arr = getDataConfig("hemodialysis", "units");
- for (let i = 0; i < arr.length; i++) {
- if (id == arr[i].id) {
- return arr[i].name;
- }
- }
- },
- changeProject(val) {
- this.form.number = 1;
- },
- querySearch(queryString, cb) {
- var restaurants = this.projectList;
- var results = queryString
- ? restaurants.filter(this.createFilter(queryString))
- : restaurants;
- // 调用 callback 返回建议列表的数据
- cb(results);
- },
- createFilter(queryString) {
- return (restaurant) => {
- return (
- restaurant.project_name
- .toLowerCase()
- .indexOf(queryString.toLowerCase()) === 0
- );
- };
- },
- handleSelect(val) {
-
- this.project_name = val.project_name;
- this.form.project_detail = val.id;
- },
- getDataConfig(module, filed_name) {
- return getDataConfig(module, filed_name);
- },
- getDictionaryDataConfig(module, filed_name) {
- return getDictionaryDataConfig(module, filed_name);
- },
- _close: function (done) {
- done();
- },
- clear: function () {
- this.form.id = 0;
- this.form.name = "";
- this.form.intro = "";
- },
- show(id) {
- this.visible = true;
- this.formTitle = "新增";
- },
- hide() {
- this.visible = false;
- },
- submitAction(formName) {
- this.$refs[formName].validate((valid) => {
- var params = {
- project_team: this.form.project_team,
- price: this.form.price,
- pinyin: this.form.pinyin,
- wubi: this.form.wubi,
- tube_color: this.form.tube_color,
- team_type: this.form.team_type,
- remark: this.form.remark,
- };
- let data = {
- info: this.tableData,
- };
- saveTeam(data, params).then((response) => {
- if (response.data.state == 1) {
- var projectTeam = response.data.data.projectTeam;
-
- this.$message.success("保存成功");
- this.visible = false;
- (this.form.project_team = ""),
- (this.form.price = ""),
- (this.form.pinyin = ""),
- (this.form.wubi = ""),
- (this.form.tube_color = ""),
- (this.form.team_type = ""),
- (this.form.remark = "");
- this.tableData = [];
- this.form.number = "";
- this.$parent.getlist();
- } else {
- this.$message.error("项目组套名称已存在!");
- }
- });
- });
- },
- getlist() {
- let params = {
- keyword: "",
- };
- getAllProjectList(params).then((response) => {
- if (response.data.state == 1) {
- var projectList = response.data.data.projectList;
- var goodInfos = response.data.data.good_info;
-
- for (let i = 0; i < projectList.length; i++) {
- let obj = {
- id: projectList[i].id,
- statistical_classification:
- projectList[i].statistical_classification,
- number: "1",
- project_name: projectList[i].project_name,
- unit: projectList[i].unit,
- price: projectList[i].price,
- type: 2,
- new_id: Math.floor(
- (Math.random() + Math.floor(Math.random() * 9 + 1)) *
- Math.pow(10, 10 - 1)
- ),
- };
- this.projectList.push(obj);
- }
-
- for (let i = 0; i < goodInfos.length; i++) {
- let obj = {
- id: goodInfos[i].id,
- statistical_classification:goodInfos[i].statistical_classification,
- number: "1",
- project_name:goodInfos[i].good_name + " " + goodInfos[i].specification_name,
- unit: goodInfos[i].packing_unit,
- price: goodInfos[i].retail_price,
- type: 3,
- new_id: Math.floor(
- (Math.random() + Math.floor(Math.random() * 9 + 1)) *
- Math.pow(10, 10 - 1)
- ),
- };
- this.projectList.push(obj);
- }
-
-
- }
- });
- },
-
- getId(id) {
- var name = "";
- var statistics_category = getDictionaryDataConfig(
- "system",
- "statistics_category"
- );
-
- for (let i = 0; i < statistics_category.length; i++) {
- if (id == statistics_category[i].id) {
- name = statistics_category[i].name;
- }
- }
- return name;
- },
- chagneInspection(id) {
- getProjectDetail(id).then((response) => {
- if (response.data.state == 1) {
- var projectdetail = response.data.data.projecDetail;
-
- this.tableData.push(projectdetail);
- }
- });
- },
- addProjectList() {
- if(this.tableData.length > 0){
- for(let i=0;i<this.tableData.length;i++){
- if(this.tableData[i].new_id == this.form.project_detail){
- this.$message.error("项目名称已存在")
- return
- }
- }
- }
- console.log("project_232332323232323232",this.projectList)
- for (let i = 0; i < this.projectList.length; i++) {
- if (this.form.project_detail == this.projectList[i].new_id) {
- this.projectList[i].number = this.form.number
- this.projectList[i].number = this.projectList[i].number.toString()
-
- this.tableData.push(this.projectList[i])
- this.form.project_detail = ''
- this.form.number = 1
- }
- }
-
- },
- DeleteProject(id, index) {
- this.$confirm("确认删除此项目吗?", "删除", {
- confirmButtonText: "确 定",
- cancelButtonText: "取 消",
- type: "warning",
- })
- .then(() => {
- this.tableData.splice(index, 1);
- })
- .catch(() => {});
- },
- },
- created() {
- //获取所以的项目
- this.getlist();
- },
- watch: {
- tableData: function () {
- let c = 0;
- this.form.price = 0;
- for (let i = 0; i < this.tableData.length; i++) {
- let a = parseFloat(this.tableData[i].number).toFixed(2);
- let b = parseFloat(this.tableData[i].price).toFixed(2);
-
- c = c + this.form.price + a * b;
- }
- this.form.price = c.toFixed(2);
- },
- },
- };
- </script>
|