| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form-item label="单位" prop="drugManufacturerId"> |
| | | <el-input v-model="queryParams.drugManufacturerId" placeholder="请输入单位id(外键)" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | <el-input |
| | | v-model="queryParams.drugManufacturerId" |
| | | placeholder="请输入单位id(外键)" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="合同名称" prop="contractName"> |
| | | <el-input v-model="queryParams.contractName" placeholder="请输入合同名称" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | <el-input |
| | | v-model="queryParams.contractName" |
| | | placeholder="请输入合同名称" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="甲签约人" prop="aSignPerson"> |
| | | <el-input v-model="queryParams.aSignPerson" placeholder="请输入甲方签约人" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | <el-input |
| | | v-model="queryParams.aSignPerson" |
| | | placeholder="请输入甲方签约人" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="乙签约人" prop="bSignPerson"> |
| | | <el-input v-model="queryParams.bSignPerson" placeholder="请输入乙方签约人" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | <el-input |
| | | v-model="queryParams.bSignPerson" |
| | | placeholder="请输入乙方签约人" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['hosp:contract:add']">新增 |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['hosp:contract:add']" |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['hosp:contract:edit']">修改 |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['hosp:contract:edit']" |
| | | >修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" |
| | | v-hasPermi="['hosp:contract:remove']">删除 |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['hosp:contract:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" |
| | | v-hasPermi="['hosp:contract:export']">导出 |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['hosp:contract:export']" |
| | | >导出 |
| | | </el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | ></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="contractList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="主键" align="center" prop="id" /> |
| | | <el-table-column label="合同名称" align="center" prop="contractName" /> |
| | | <el-table-column label="签约时间" align="center" prop="signTime" width="180"> |
| | | <el-table-column |
| | | label="签约时间" |
| | | align="center" |
| | | prop="signTime" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.signTime, '{y}-{m}-{d}') }}</span> |
| | | <span>{{ parseTime(scope.row.signTime, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="甲方签约人" align="center" prop="aSignPerson" /> |
| | |
| | | <el-table-column label="乙方签约人" align="center" prop="bSignPerson" /> |
| | | <el-table-column label="乙方联系电话" align="center" prop="bSignPhone" /> |
| | | <el-table-column label="合同金额" align="center" prop="contractAmount" /> |
| | | <el-table-column label="合同有效期" align="center" prop="contractValidTime" width="180"> |
| | | <el-table-column |
| | | label="合同有效期" |
| | | align="center" |
| | | prop="contractValidTime" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.contractValidTime, '{y}-{m}-{d}') }}</span> |
| | | <span>{{ |
| | | parseTime(scope.row.contractValidTime, "{y}-{m}-{d}") |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="合同回款状态(1需首付2需付尾款3已结清)" align="center" prop="contractStatus" /> |
| | | <el-table-column |
| | | label="合同回款状态(1需首付2需付尾款3已结清)" |
| | | align="center" |
| | | prop="contractStatus" |
| | | /> |
| | | <el-table-column label="备注" align="center" prop="remark" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['hosp:contract:edit']">修改 |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['hosp:contract:edit']" |
| | | >修改 |
| | | </el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" |
| | | v-hasPermi="['hosp:contract:remove']">删除 |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['hosp:contract:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- 添加或修改合同对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | |
| | | <el-input v-model="form.contractName" placeholder="请输入合同名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="签约时间" prop="signTime"> |
| | | <el-date-picker clearable v-model="form.signTime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="请选择签约时间"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="form.signTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择签约时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="甲方签约人" prop="aSignPerson"> |
| | | <el-input v-model="form.aSignPerson" placeholder="请输入甲方签约人" /> |
| | | </el-form-item> |
| | | <el-form-item label="甲方联系电话" prop="aSignPhone"> |
| | | <el-input v-model="form.aSignPhone" placeholder="请输入甲方联系电话" /> |
| | | <el-input |
| | | v-model="form.aSignPhone" |
| | | placeholder="请输入甲方联系电话" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="乙方签约人" prop="bSignPerson"> |
| | | <el-input v-model="form.bSignPerson" placeholder="请输入乙方签约人" /> |
| | | </el-form-item> |
| | | <el-form-item label="乙方联系电话" prop="bSignPhone"> |
| | | <el-input v-model="form.bSignPhone" placeholder="请输入乙方联系电话" /> |
| | | <el-input |
| | | v-model="form.bSignPhone" |
| | | placeholder="请输入乙方联系电话" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="合同金额" prop="contractAmount"> |
| | | <el-input v-model="form.contractAmount" placeholder="请输入合同金额" /> |
| | | <el-input |
| | | v-model="form.contractAmount" |
| | | placeholder="请输入合同金额" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="合同有效期" prop="contractValidTime"> |
| | | <el-date-picker clearable v-model="form.contractValidTime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="请选择合同有效期"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="form.contractValidTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择合同有效期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | |
| | | </el-dialog> |
| | | |
| | | <template> |
| | | <el-button style="margin-top: 20px;" type="primary" plain size="mini" icon="el-icon-plus" @click="addmembers()">新增</el-button> |
| | | <el-table v-loading="loading" :data="tjProjectList" @selection-change="handleSelectionChange" border |
| | | style="margin:10px 0"> |
| | | <el-button |
| | | style="margin-top: 20px" |
| | | type="primary" |
| | | plain |
| | | size="mini" |
| | | icon="el-icon-plus" |
| | | @click="addmembers()" |
| | | >新增</el-button |
| | | > |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="tjProjectList" |
| | | @selection-change="handleSelectionChange" |
| | | border |
| | | style="margin: 10px 0" |
| | | > |
| | | <el-table-column label="序号" align="center" type="index" /> |
| | | <el-table-column label="分组模式" align="center" prop="proName" width="260px"> |
| | | <el-table-column |
| | | label="分组模式" |
| | | align="center" |
| | | prop="proName" |
| | | width="260px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select filterable v-model="scope.row.proName" placeholder="请选择项目名称"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select |
| | | filterable |
| | | v-model="scope.row.proName" |
| | | placeholder="请选择项目名称" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="加项折扣率" align="center" prop="allSonProName" width="260px" |
| | | :show-overflow-tooltip="true"> |
| | | <el-table-column |
| | | label="加项折扣率" |
| | | align="center" |
| | | prop="allSonProName" |
| | | width="260px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column label="优惠上限设置" align="center" prop="proPrice" width="260px" /> |
| | | <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column |
| | | label="优惠上限设置" |
| | | align="center" |
| | | prop="proPrice" |
| | | width="260px" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | fixed="right" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-circle-plus-outline" @click="addmembers(scope.row)" |
| | | v-hasPermi="['system:package:edit']" title="新增行"></el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" |
| | | @click.native.prevent="Delete(scope.$index)" v-hasPermi="['hosp:consumables:remove']" |
| | | title="删除"></el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-circle-plus-outline" |
| | | @click="addmembers(scope.row)" |
| | | v-hasPermi="['system:package:edit']" |
| | | title="新增行" |
| | | ></el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click.native.prevent="Delete(scope.$index)" |
| | | v-hasPermi="['hosp:consumables:remove']" |
| | | title="删除" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | getContract, |
| | | delContract, |
| | | addContract, |
| | | updateContract |
| | | updateContract, |
| | | } from "@/api/hosp/contract"; |
| | | |
| | | export default { |
| | | name: "Contract", |
| | | data() { |
| | | let checkPhoneNum = (rule, value, callback) => { |
| | | console.log( value) |
| | | console.log(value); |
| | | let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); |
| | | if (value == "" && value == undefined && !value) { |
| | | return callback(''); |
| | | return callback(""); |
| | | } else if(value != undefined && value != ""){ |
| | | return callback(); |
| | | }else if (!patter.test(value)) { |
| | | return callback(''); |
| | | return callback(""); |
| | | } |
| | | }; |
| | | return { |
| | | options: [{ |
| | | value: '选项1', |
| | | label: '婚姻' |
| | | }, { |
| | | value: '选项2', |
| | | label: '性别' |
| | | }, { |
| | | value: '选项3', |
| | | label: '年龄' |
| | | }], |
| | | tjProjectList: [{ |
| | | options: [ |
| | | { |
| | | value: "选项1", |
| | | label: "婚姻", |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "性别", |
| | | }, |
| | | { |
| | | value: "选项3", |
| | | label: "年龄", |
| | | }, |
| | | ], |
| | | tjProjectList: [ |
| | | { |
| | | proName: "婚姻", |
| | | allSonProName: "1", |
| | | proPrice: "1", |
| | | }], |
| | | }, |
| | | ], |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | |
| | | rules: { |
| | | deleted: [ |
| | | { |
| | | required: true, validator: checkPhoneNum, trigger: "blur" |
| | | } |
| | | required: true, |
| | | validator: checkPhoneNum, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | createTime: [ |
| | | { |
| | | required: true, validator: checkPhoneNum, trigger: "blur" |
| | | } |
| | | required: true, |
| | | validator: checkPhoneNum, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | /** 查询合同列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listContract(this.queryParams).then(response => { |
| | | listContract(this.queryParams).then((response) => { |
| | | this.contractList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null |
| | | updateTime: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | this.ids = selection.map((item) => item.id); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getContract(id).then(response => { |
| | | const id = row.id || this.ids; |
| | | getContract(id).then((response) => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改合同"; |
| | |
| | | }, |
| | | // 新增行 |
| | | addmembers() { |
| | | |
| | | if (!this.tjProjectList) { |
| | | this.tjProjectList = [] |
| | | this.tjProjectList = []; |
| | | this.tjProjectList.push({ |
| | | id: parseInt(length), |
| | | proName: "", |
| | | allSonProName: "", |
| | | proPrice: "", |
| | | Selection, |
| | | }); |
| | | } else { |
| | | this.tjProjectList.push({ |
| | | id: parseInt(length), |
| | | proName: "", |
| | |
| | | Selection, |
| | | }); |
| | | } |
| | | else { |
| | | this.tjProjectList.push({ |
| | | id: parseInt(length), |
| | | proName: "", |
| | | allSonProName: "", |
| | | proPrice: "", |
| | | Selection, |
| | | }); |
| | | } |
| | | this.$forceUpdate() |
| | | this.$forceUpdate(); |
| | | }, |
| | | |
| | | // 删除行 |
| | |
| | | // ...this.queryParams |
| | | // }, `${businessName}_#[[${new Date().getTime()}.xlsx`) |
| | | // } |
| | | } |
| | | } |
| | | |
| | | }, |
| | | }; |
| | | </script> |