新增处方下载,处方赋码等界面
							parent
							
								
									f12f5b877c
								
							
						
					
					
						commit
						ded37366ae
					
				| @ -0,0 +1,358 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card> | ||||
|       <el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form" | ||||
|                size="mini" label-width="100px"> | ||||
|         <el-row style=" display:flex;  flex-wrap: wrap; "> | ||||
|           <el-col :span="20"> | ||||
|             <el-form-item prop="code" label="扫码查询:"> | ||||
|               <el-input | ||||
|                 id="inputer" | ||||
|                 @focus="getInputFocus($event)" | ||||
|                 @keypress.enter.native="enterKey($event)" | ||||
|                 ref="inputRef" | ||||
|                 style="ime-mode: disabled" | ||||
|                 type="tel" | ||||
|                 v-model="filterQuery.code" | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
| 
 | ||||
|           <template v-for="(item, index) in queryList"> | ||||
|             <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`" :key="item.id"> | ||||
|               <el-input | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" | ||||
|                 clearable | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select v-model="filterQuery[item.columnName]" | ||||
|                          :placeholder="item.columnDesc" | ||||
|                          :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                          clearable> | ||||
|                 <el-option | ||||
|                   v-for="dict in item.lableRuleObj" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 @change="executeFuc($event,'5',item.checkRules)" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 filterable | ||||
|                 remote | ||||
|                 :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" | ||||
|                 clearable> | ||||
|                 <el-option | ||||
|                   v-for="item in options[item.clickFuc]" | ||||
|                   :key="item.code" | ||||
|                   :label="item.label" | ||||
|                   :value="item.code" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 :picker-options="pickerOptions" | ||||
|                 v-model="actDateRange" | ||||
|                 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 v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :style="`width:${item.width+'px'}`" | ||||
|                 value-format="yyyy-MM-dd" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 type="date" | ||||
|                 :placeholder="item.columnDesc" | ||||
|               ></el-date-picker> | ||||
|             </el-form-item> | ||||
|           </template> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group> | ||||
|           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||
|           <el-button | ||||
|             type="primary" | ||||
|             icon="el-icon-refresh" | ||||
|             @click="onReset" | ||||
|           >重置 | ||||
|           </el-button> | ||||
|           <el-button type="primary" icon="el-icon-search" @click="onSubmit" | ||||
|           >查询 | ||||
|           </el-button | ||||
|           > | ||||
|         </el-button-group> | ||||
|       </div> | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row | ||||
|                 @row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable" | ||||
|                 :default-sort="defaultSort" | ||||
|                 :row-style="{ height: '32px' }" | ||||
|                 @sort-change="handleSortChange"> | ||||
|         <template v-for="(item, index) in tableHeader"> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|             type="index" :label="item.columnDesc"></el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'selection'" | ||||
|             type="selection" | ||||
|             :width="item.width" | ||||
|             :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|           ></el-table-column> | ||||
| 
 | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                 item.lableRuleObj[scope.row[item.columnName]] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-tag | ||||
|                 :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|               <span>{{ | ||||
|                   item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                 }}</span> | ||||
|               </el-tag> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :width="item.width" | ||||
|             :key="item.columnName" | ||||
|             fixed="right" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                          :type="buttonItem.type" | ||||
|                          :size="buttonItem.size" | ||||
|                          :style="buttonItem.style" | ||||
|                          :key="buttonItem" | ||||
|                          v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                          :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                          @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|               >{{ buttonItem.name }} | ||||
|               </el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                 scope.row[item.columnName] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </template> | ||||
|       </el-table> | ||||
| 
 | ||||
|       <pagination | ||||
|         v-show="total>0" | ||||
|         :total="total" | ||||
|         :limit.sync="filterQuery.limit" | ||||
|         :page.sync="filterQuery.page" | ||||
|         @pagination="handleCurrentChange" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {executeFuc, getHead} from "@/utils/customConfig"; | ||||
| import {convertDate} from "@/utils/date"; | ||||
| import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi"; | ||||
| import {materialCodePage, materialPrescribePage, splitFifoPage} from "@/api/inout/splitCode"; | ||||
| import {getInvListByUserOptimize} from "@/api/system/invWarehouse"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "ioSplitFifoCode", | ||||
|   data() { | ||||
|     return { | ||||
| 
 | ||||
|       //界面配置相关 | ||||
|       //扫码查询 | ||||
|       tableHeader: [], | ||||
|       queryList: [], | ||||
|       tableObj: [], | ||||
|       fromList: [], | ||||
|       convertDateFun: convertDate, | ||||
|       //界面配置-------------end | ||||
| 
 | ||||
|       options: { | ||||
|         getInvList: [], | ||||
|         getDeptList: [], | ||||
|         getBusType: [], | ||||
|       }, | ||||
| 
 | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         code: null, | ||||
|         billNo: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|       defaultSort: {prop: 'createTime', order: 'desc'}, | ||||
|       loading: false, | ||||
|       list: [], | ||||
|       total: 0, | ||||
| 
 | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   components: {}, | ||||
|   methods: { | ||||
| 
 | ||||
|     //界面配置相关------------ | ||||
|     executeFuc(row, type, clickFuc, value) { | ||||
|       return executeFuc(this, row, type, clickFuc, value); | ||||
|     }, | ||||
|     executeEval(row, expression, defaultRet) { | ||||
|       if (expression) { | ||||
|         return eval(expression); | ||||
|       } | ||||
|       return defaultRet; | ||||
|     }, | ||||
|     handleSortChange(column, prop, order) { | ||||
|       if (column.order === 'descending') { | ||||
|         this.query.sort = 'desc' | ||||
|       } else { | ||||
|         this.query.sort = 'asc' | ||||
|       } | ||||
|       this.query.orderBy = column.prop; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     ///界面配置相关------------end | ||||
|     getInvList(_this) { | ||||
|       getInvListByUserOptimize() | ||||
|         .then((response) => { | ||||
|           _this.options.getInvList = response.data || []; | ||||
|           _this.getList(); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     onReset() { | ||||
|       this.filterQuery = {}; | ||||
|       this.actDateRange = []; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       splitFifoPage(this.filterQuery).then(res => { | ||||
|         this.loading = false | ||||
|         this.list = res.data.list || [] | ||||
|         this.total = res.data.total || 0 | ||||
|       }).catch(() => { | ||||
|         this.loading = false | ||||
|         this.list = [] | ||||
|         this.total = 0 | ||||
|       }) | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     getInputFocus(event) { | ||||
|       event.currentTarget.select(); | ||||
|     }, | ||||
|     enterKey(_this, event) { | ||||
|       _this.onSubmit(); | ||||
|     }, | ||||
|   }, | ||||
|   created() { | ||||
|     getHead("ioSplitFifoCode", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj = re.data; | ||||
|       this.tableHeader = re.data.tableList; | ||||
|       this.queryList = re.data.queryList; | ||||
|       this.fromList = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
| 
 | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
| @ -0,0 +1,511 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card> | ||||
|       <el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form" | ||||
|                size="mini" label-width="100px"> | ||||
|         <el-row style=" display:flex;  flex-wrap: wrap; "> | ||||
|           <template v-for="(item, index) in queryList"> | ||||
|             <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`" :key="item.id"> | ||||
|               <el-input | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" | ||||
|                 clearable | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select v-model="filterQuery[item.columnName]" | ||||
|                          :placeholder="item.columnDesc" | ||||
|                          :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                          clearable> | ||||
|                 <el-option | ||||
|                   v-for="dict in item.lableRuleObj" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 @change="executeFuc($event,'5',item.checkRules)" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 filterable | ||||
|                 remote | ||||
|                 :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" | ||||
|                 clearable> | ||||
|                 <el-option | ||||
|                   v-for="item in options[item.clickFuc]" | ||||
|                   :key="item.code" | ||||
|                   :label="item.label" | ||||
|                   :value="item.code" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 :picker-options="pickerOptions" | ||||
|                 v-model="actDateRange" | ||||
|                 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 v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :style="`width:${item.width+'px'}`" | ||||
|                 value-format="yyyy-MM-dd" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 type="date" | ||||
|                 :placeholder="item.columnDesc" | ||||
|               ></el-date-picker> | ||||
|             </el-form-item> | ||||
|           </template> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group> | ||||
|           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||
|           <el-button | ||||
|             type="primary" | ||||
|             icon="el-icon-refresh" | ||||
|             @click="onReset" | ||||
|           >重置 | ||||
|           </el-button> | ||||
|           <el-button type="primary" icon="el-icon-search" @click="onSubmit" | ||||
|           >查询 | ||||
|           </el-button | ||||
|           > | ||||
|           <el-button type="primary" icon="el-icon-search" @click="onSubmit" | ||||
|           >下载处方 | ||||
|           </el-button | ||||
|           > | ||||
|         </el-button-group> | ||||
|       </div> | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row | ||||
|                 @row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable" | ||||
|                 :default-sort="defaultSort" | ||||
|                 :row-style="{ height: '32px' }" | ||||
|                 @sort-change="handleSortChange"> | ||||
|         <template v-for="(item, index) in tableHeader"> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|             type="index" :label="item.columnDesc"></el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'selection'" | ||||
|             type="selection" | ||||
|             :width="item.width" | ||||
|             :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|           ></el-table-column> | ||||
| 
 | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                 item.lableRuleObj[scope.row[item.columnName]] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-tag | ||||
|                 :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|               <span>{{ | ||||
|                   item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                 }}</span> | ||||
|               </el-tag> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :width="item.width" | ||||
|             :key="item.columnName" | ||||
|             fixed="right" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                          :type="buttonItem.type" | ||||
|                          :size="buttonItem.size" | ||||
|                          :style="buttonItem.style" | ||||
|                          :key="buttonItem" | ||||
|                          v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                          :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                          @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|               >{{ buttonItem.name }} | ||||
|               </el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                 scope.row[item.columnName] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </template> | ||||
|       </el-table> | ||||
| 
 | ||||
|       <pagination | ||||
|         v-show="total>0" | ||||
|         :total="total" | ||||
|         :limit.sync="filterQuery.limit" | ||||
|         :page.sync="filterQuery.page" | ||||
|         @pagination="handleCurrentChange" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
|     <el-tabs type="border-card" style="margin: 15px"> | ||||
|       <el-tab-pane label="处方明细"> | ||||
| 
 | ||||
|         <el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border> | ||||
|           <template v-for="(item, index) in tableHeader1"> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|               type="index" :label="item.columnDesc"></el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'selection'" | ||||
|               type="selection" | ||||
|               :width="item.width" | ||||
|               :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|             ></el-table-column> | ||||
| 
 | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                     item.lableRuleObj[scope.row[item.columnName]] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-tag | ||||
|                   :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|                   <span>{{ | ||||
|                       item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                     }}</span> | ||||
|                 </el-tag> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :width="item.width" | ||||
|               :key="item.columnName" | ||||
|               fixed="right" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                            :type="buttonItem.type" | ||||
|                            :size="buttonItem.size" | ||||
|                            :style="buttonItem.style" | ||||
|                            :key="buttonItem" | ||||
|                            v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                            :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                            @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|                 >{{ buttonItem.name }} | ||||
|                 </el-button> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text'  && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     scope.row[item.columnName] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     convertDateFun(scope.row[item.columnName]) | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|           </template> | ||||
|         </el-table> | ||||
| 
 | ||||
|         <pagination | ||||
|           v-show="preTotal>0" | ||||
|           :total="preTotal" | ||||
|           :limit.sync="preQuery.limit" | ||||
|           :page.sync="preQuery.page" | ||||
|           @pagination="preHandleCurrentChange" | ||||
|         ></pagination> | ||||
| 
 | ||||
|       </el-tab-pane> | ||||
|     </el-tabs> | ||||
| 
 | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import addOrder from "@/views/inout/DialogCreateOrder"; | ||||
| import errOrder from "@/views/inout/IoCreateErrorOrder"; | ||||
| import {executeFuc, getHead} from "@/utils/customConfig"; | ||||
| import store from "@/store"; | ||||
| import {filterOrder} from "@/api/inout/order"; | ||||
| import {convertDate} from "@/utils/date"; | ||||
| import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi"; | ||||
| import {materialPrescribePage} from "@/api/inout/splitCode"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "prescribePanel", | ||||
|   data() { | ||||
|     return { | ||||
| 
 | ||||
|       //界面配置相关 | ||||
|       //患者处方 | ||||
|       tableHeader: [], | ||||
|       queryList: [], | ||||
|       tableObj: [], | ||||
|       fromList: [], | ||||
|       //处方明细 | ||||
|       tableHeader1: [], | ||||
|       queryList1: [], | ||||
|       tableObj1: [], | ||||
|       fromList1: [], | ||||
|       convertDateFun: convertDate, | ||||
|       //界面配置-------------end | ||||
| 
 | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         billNo: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|       defaultSort: {prop: 'createTime', order: 'desc'}, | ||||
|       loading: false, | ||||
|       list: [], | ||||
|       total: 0, | ||||
| 
 | ||||
| 
 | ||||
|       preLoading: false, | ||||
|       preDetailList: [], | ||||
|       preTotal: 0, | ||||
|       preQuery: { | ||||
|         prescribeCode: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   components: { | ||||
|     addOrder, errOrder | ||||
|   }, | ||||
|   methods: { | ||||
| 
 | ||||
|     //界面配置相关------------ | ||||
|     executeFuc(row, type, clickFuc, value) { | ||||
|       return executeFuc(this, row, type, clickFuc, value); | ||||
|     }, | ||||
|     executeEval(row, expression, defaultRet) { | ||||
|       if (expression) { | ||||
|         return eval(expression); | ||||
|       } | ||||
|       return defaultRet; | ||||
|     }, | ||||
|     handleSortChange(column, prop, order) { | ||||
|       if (column.order === 'descending') { | ||||
|         this.query.sort = 'desc' | ||||
|       } else { | ||||
|         this.query.sort = 'asc' | ||||
|       } | ||||
|       this.query.orderBy = column.prop; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     ///界面配置相关------------end | ||||
| 
 | ||||
| 
 | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     onReset() { | ||||
|       this.filterQuery = {}; | ||||
|       this.actDateRange = []; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       prescribePage(this.filterQuery).then(res => { | ||||
|         this.loading = false | ||||
|         this.list = res.data.list || [] | ||||
|         this.total = res.data.total || 0 | ||||
|       }).catch(() => { | ||||
|         this.loading = false | ||||
|         this.list = [] | ||||
|         this.total = 0 | ||||
|       }) | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
|     prescribeClick(_this, row) { | ||||
|       this.getPrescribeDetail(_this, row) | ||||
|       this.getCodeDetail(_this, row) | ||||
|     }, | ||||
| 
 | ||||
|     getPrescribeDetail(_this, row) { | ||||
|       if (row != null) { | ||||
|         _this.preQuery.page = 1 | ||||
|         _this.preQuery.prescribeCode = row.code | ||||
|       } | ||||
|       _this.preLoading = true; | ||||
|       detail(_this.preQuery).then(res => { | ||||
|         _this.preLoading = false | ||||
|         if (res.code != 20000) { | ||||
|           _this.$message.error(res.message) | ||||
|           return | ||||
|         } | ||||
|         _this.preDetailList = res.data.items | ||||
|         _this.preLoading = false | ||||
|       }).catch(() => { | ||||
|         _this.preLoading = false | ||||
|         _this.$message.error("数据加载失败") | ||||
|       }) | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     preHandleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getPrescribeDetail(this, null); | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|   }, | ||||
|   created() { | ||||
|     getHead("prescribePanel", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj = re.data; | ||||
|       this.tableHeader = re.data.tableList; | ||||
|       this.queryList = re.data.queryList; | ||||
|       this.fromList = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
| 
 | ||||
|     getHead("prescribePanel-1", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj1 = re.data; | ||||
|       this.tableHeader1 = re.data.tableList; | ||||
|       this.queryList1 = re.data.queryList; | ||||
|       this.fromList1 = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
| @ -0,0 +1,686 @@ | ||||
| <template> | ||||
|   <div> | ||||
| 
 | ||||
|     <el-card> | ||||
|       <el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form" | ||||
|                size="mini" label-width="100px"> | ||||
|         <el-row style=" display:flex;  flex-wrap: wrap; "> | ||||
|           <template v-for="(item, index) in queryList"> | ||||
|             <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`" :key="item.id"> | ||||
|               <el-input | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" | ||||
|                 clearable | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select v-model="filterQuery[item.columnName]" | ||||
|                          :placeholder="item.columnDesc" | ||||
|                          :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                          clearable> | ||||
|                 <el-option | ||||
|                   v-for="dict in item.lableRuleObj" | ||||
|                   :key="dict.value" | ||||
|                   :label="dict.label" | ||||
|                   :value="dict.value" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-select | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :placeholder="item.columnDesc" | ||||
|                 @change="executeFuc($event,'5',item.checkRules)" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 filterable | ||||
|                 remote | ||||
|                 :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" | ||||
|                 clearable> | ||||
|                 <el-option | ||||
|                   v-for="item in options[item.clickFuc]" | ||||
|                   :key="item.code" | ||||
|                   :label="item.label" | ||||
|                   :value="item.code" | ||||
|                 /> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 :picker-options="pickerOptions" | ||||
|                 v-model="actDateRange" | ||||
|                 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 v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" | ||||
|                           class="query-form-item" | ||||
|                           :label="item.columnDesc+`:`"> | ||||
|               <el-date-picker | ||||
|                 v-model="filterQuery[item.columnName]" | ||||
|                 :style="`width:${item.width+'px'}`" | ||||
|                 value-format="yyyy-MM-dd" | ||||
|                 :disabled="executeEval(null,item.disabledFuc,false)" | ||||
|                 type="date" | ||||
|                 :placeholder="item.columnDesc" | ||||
|               ></el-date-picker> | ||||
|             </el-form-item> | ||||
|           </template> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group> | ||||
|           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||
|           <el-button | ||||
|             type="primary" | ||||
|             icon="el-icon-refresh" | ||||
|             @click="onReset" | ||||
|           >重置 | ||||
|           </el-button> | ||||
|           <el-button type="primary" icon="el-icon-search" @click="onSubmit" | ||||
|           >查询 | ||||
|           </el-button | ||||
|           > | ||||
|           <el-button type="primary" icon="el-icon-plus" @click="onSubmit" | ||||
|           >新增处方赋码 | ||||
|           </el-button | ||||
|           > | ||||
|         </el-button-group> | ||||
|       </div> | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row | ||||
|                 @row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable" | ||||
|                 :default-sort="defaultSort" | ||||
|                 :row-style="{ height: '32px' }" | ||||
|                 @sort-change="handleSortChange"> | ||||
|         <template v-for="(item, index) in tableHeader"> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|             type="index" :label="item.columnDesc"></el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'selection'" | ||||
|             type="selection" | ||||
|             :width="item.width" | ||||
|             :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|           ></el-table-column> | ||||
| 
 | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                 item.lableRuleObj[scope.row[item.columnName]] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-tag | ||||
|                 :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|               <span>{{ | ||||
|                   item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                 }}</span> | ||||
|               </el-tag> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :width="item.width" | ||||
|             :key="item.columnName" | ||||
|             fixed="right" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|               <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                          :type="buttonItem.type" | ||||
|                          :size="buttonItem.size" | ||||
|                          :style="buttonItem.style" | ||||
|                          :key="buttonItem" | ||||
|                          v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                          :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                          @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|               >{{ buttonItem.name }} | ||||
|               </el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column | ||||
|             v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" | ||||
|             :prop="item.columnName" | ||||
|             :label="item.columnDesc" | ||||
|             :sortable="item.sort" | ||||
|             :width="item.width" | ||||
|             :show-overflow-tooltip="item.tooltip" | ||||
|             :key="item.columnName" | ||||
|           > | ||||
|             <template slot-scope="scope"> | ||||
|             <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                 scope.row[item.columnName] | ||||
|               }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </template> | ||||
|       </el-table> | ||||
| 
 | ||||
|       <pagination | ||||
|         v-show="total>0" | ||||
|         :total="total" | ||||
|         :limit.sync="filterQuery.limit" | ||||
|         :page.sync="filterQuery.page" | ||||
|         @pagination="handleCurrentChange" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
|     <el-tabs type="border-card" style="margin: 15px"> | ||||
| 
 | ||||
|       <el-tab-pane label="处方明细"> | ||||
| 
 | ||||
|         <el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border> | ||||
|           <template v-for="(item, index) in tableHeader1"> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|               type="index" :label="item.columnDesc"></el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'selection'" | ||||
|               type="selection" | ||||
|               :width="item.width" | ||||
|               :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|             ></el-table-column> | ||||
| 
 | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                     item.lableRuleObj[scope.row[item.columnName]] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-tag | ||||
|                   :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|                   <span>{{ | ||||
|                       item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                     }}</span> | ||||
|                 </el-tag> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :width="item.width" | ||||
|               :key="item.columnName" | ||||
|               fixed="right" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                            :type="buttonItem.type" | ||||
|                            :size="buttonItem.size" | ||||
|                            :style="buttonItem.style" | ||||
|                            :key="buttonItem" | ||||
|                            v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                            :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                            @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|                 >{{ buttonItem.name }} | ||||
|                 </el-button> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text'  && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     scope.row[item.columnName] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     convertDateFun(scope.row[item.columnName]) | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|           </template> | ||||
|         </el-table> | ||||
| 
 | ||||
|         <pagination | ||||
|           v-show="preTotal>0" | ||||
|           :total="preTotal" | ||||
|           :limit.sync="preQuery.limit" | ||||
|           :page.sync="preQuery.page" | ||||
|           @pagination="preHandleCurrentChange" | ||||
|         ></pagination> | ||||
| 
 | ||||
|       </el-tab-pane> | ||||
| 
 | ||||
|       <el-tab-pane label="赋码明细"> | ||||
| 
 | ||||
|         <el-table v-loading="codeLoading" :data="codeDetailList" style="width: 100%" border> | ||||
|           <template v-for="(item, index) in tableHeader2"> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" | ||||
|               type="index" :label="item.columnDesc"></el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'selection'" | ||||
|               type="selection" | ||||
|               :width="item.width" | ||||
|               :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" | ||||
|             ></el-table-column> | ||||
| 
 | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ | ||||
|                     item.lableRuleObj[scope.row[item.columnName]] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-tag | ||||
|                   :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> | ||||
|                   <span>{{ | ||||
|                       item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName] | ||||
|                     }}</span> | ||||
|                 </el-tag> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :width="item.width" | ||||
|               :key="item.columnName" | ||||
|               fixed="right" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" | ||||
|                            :type="buttonItem.type" | ||||
|                            :size="buttonItem.size" | ||||
|                            :style="buttonItem.style" | ||||
|                            :key="buttonItem" | ||||
|                            v-if="executeEval(scope.row,buttonItem.hasPermi,true)" | ||||
|                            :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" | ||||
|                            @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" | ||||
|                 >{{ buttonItem.name }} | ||||
|                 </el-button> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text'  && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     scope.row[item.columnName] | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|             <el-table-column | ||||
|               v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)" | ||||
|               :prop="item.columnName" | ||||
|               :label="item.columnDesc" | ||||
|               :sortable="item.sort" | ||||
|               :width="item.width" | ||||
|               :show-overflow-tooltip="item.tooltip" | ||||
|               :key="item.columnName" | ||||
|             > | ||||
|               <template slot-scope="scope"> | ||||
|                 <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ | ||||
|                     convertDateFun(scope.row[item.columnName]) | ||||
|                   }}</span> | ||||
|               </template> | ||||
|             </el-table-column> | ||||
|           </template> | ||||
|         </el-table> | ||||
| 
 | ||||
|         <pagination | ||||
|           v-show="codeTotal>0" | ||||
|           :total="codeTotal" | ||||
|           :limit.sync="codeQuery.limit" | ||||
|           :page.sync="codeQuery.page" | ||||
|           @pagination="codeHandleCurrentChange" | ||||
|         ></pagination> | ||||
| 
 | ||||
|       </el-tab-pane> | ||||
| 
 | ||||
|     </el-tabs> | ||||
| 
 | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import addOrder from "@/views/inout/DialogCreateOrder"; | ||||
| import errOrder from "@/views/inout/IoCreateErrorOrder"; | ||||
| import {executeFuc, getHead} from "@/utils/customConfig"; | ||||
| import store from "@/store"; | ||||
| import {filterOrder} from "@/api/inout/order"; | ||||
| import {convertDate} from "@/utils/date"; | ||||
| import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi"; | ||||
| import {materialPrescribePage} from "@/api/inout/splitCode"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "prescribePanel", | ||||
|   data() { | ||||
|     return { | ||||
| 
 | ||||
|       //界面配置相关 | ||||
|       //患者处方 | ||||
|       tableHeader: [], | ||||
|       queryList: [], | ||||
|       tableObj: [], | ||||
|       fromList: [], | ||||
|       //处方明细 | ||||
|       tableHeader1: [], | ||||
|       queryList1: [], | ||||
|       tableObj1: [], | ||||
|       fromList1: [], | ||||
|       //赋码明细 | ||||
|       tableHeader2: [], | ||||
|       queryList2: [], | ||||
|       tableObj2: [], | ||||
|       fromList2: [], | ||||
|       convertDateFun: convertDate, | ||||
|       //界面配置-------------end | ||||
| 
 | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         billNo: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|       defaultSort: {prop: 'createTime', order: 'desc'}, | ||||
|       loading: false, | ||||
|       list: [], | ||||
|       total: 0, | ||||
| 
 | ||||
| 
 | ||||
|       preLoading: false, | ||||
|       preDetailList: [], | ||||
|       preTotal: 0, | ||||
|       preQuery: { | ||||
|         prescribeCode: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|       codeLoading: false, | ||||
|       codeDetailList: [], | ||||
|       codeTotal: 0, | ||||
|       codeQuery: { | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   components: { | ||||
|     addOrder, errOrder | ||||
|   }, | ||||
|   methods: { | ||||
| 
 | ||||
|     //界面配置相关------------ | ||||
|     executeFuc(row, type, clickFuc, value) { | ||||
|       return executeFuc(this, row, type, clickFuc, value); | ||||
|     }, | ||||
|     executeEval(row, expression, defaultRet) { | ||||
|       if (expression) { | ||||
|         return eval(expression); | ||||
|       } | ||||
|       return defaultRet; | ||||
|     }, | ||||
|     handleSortChange(column, prop, order) { | ||||
|       if (column.order === 'descending') { | ||||
|         this.query.sort = 'desc' | ||||
|       } else { | ||||
|         this.query.sort = 'asc' | ||||
|       } | ||||
|       this.query.orderBy = column.prop; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     ///界面配置相关------------end | ||||
| 
 | ||||
| 
 | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     onReset() { | ||||
|       this.filterQuery = {}; | ||||
|       this.actDateRange = []; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       prescribePage(this.filterQuery).then(res => { | ||||
|         this.loading = false | ||||
|         this.list = res.data.list || [] | ||||
|         this.total = res.data.total || 0 | ||||
|       }).catch(() => { | ||||
|         this.loading = false | ||||
|         this.list = [] | ||||
|         this.total = 0 | ||||
|       }) | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getList(); | ||||
|     }, | ||||
| 
 | ||||
|     prescribeClick(_this, row) { | ||||
|       this.getPrescribeDetail(_this, row) | ||||
|       this.getCodeDetail(_this, row) | ||||
|     }, | ||||
| 
 | ||||
|     getPrescribeDetail(_this, row) { | ||||
|       if (row != null) { | ||||
|         _this.preQuery.page = 1 | ||||
|         _this.preQuery.prescribeCode = row.code | ||||
|       } | ||||
|       _this.preLoading = true; | ||||
|       detail(_this.preQuery).then(res => { | ||||
|         _this.preLoading = false | ||||
|         if (res.code != 20000) { | ||||
|           _this.$message.error(res.message) | ||||
|           return | ||||
|         } | ||||
|         _this.preDetailList = res.data.items | ||||
|         _this.preLoading = false | ||||
|       }).catch(() => { | ||||
|         _this.preLoading = false | ||||
|         _this.$message.error("数据加载失败") | ||||
|       }) | ||||
|     }, | ||||
| 
 | ||||
|     getCodeDetail(_this, row) { | ||||
| 
 | ||||
|       if (row != null) { | ||||
|         _this.codeQuery.page = 1 | ||||
|         _this.codeQuery.prescribeNum = row.code | ||||
|       } | ||||
|       _this.codeLoading = true; | ||||
|       materialPrescribePage(_this.codeQuery).then(res => { | ||||
|         _this.codeLoading = false | ||||
|         if (res.code != 20000) { | ||||
|           _this.$message.error(res.message) | ||||
|           return | ||||
|         } | ||||
|         _this.codeDetailList = res.data.list | ||||
|         _this.codeLoading = false | ||||
|       }).catch(() => { | ||||
|         _this.codeLoading = false | ||||
|         _this.$message.error("数据加载失败") | ||||
|       }) | ||||
| 
 | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     preHandleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getPrescribeDetail(this, null); | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     codeHandleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page; | ||||
|       this.getCodeDetail(this, null); | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|   }, | ||||
|   created() { | ||||
|     getHead("prescribePanel", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj = re.data; | ||||
|       this.tableHeader = re.data.tableList; | ||||
|       this.queryList = re.data.queryList; | ||||
|       this.fromList = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
| 
 | ||||
|     getHead("prescribePanel-1", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj1 = re.data; | ||||
|       this.tableHeader1 = re.data.tableList; | ||||
|       this.queryList1 = re.data.queryList; | ||||
|       this.fromList1 = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
| 
 | ||||
|     getHead("prescribePanel-2", "1").then((re) => { | ||||
|       // 处理返回的数据 | ||||
|       this.tableObj2 = re.data; | ||||
|       this.tableHeader2 = re.data.tableList; | ||||
|       this.queryList2 = re.data.queryList; | ||||
|       this.fromList2 = re.data.fromList; | ||||
|       this.getList(); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
					Loading…
					
					
				
		Reference in New Issue