XMLWAN 4 yıl önce
ebeveyn
işleme
035522f53a

+ 3 - 1
src/xt_pages/dialysis/template/dialysisPrintOrderTwelve.vue Dosyayı Görüntüle

@@ -789,7 +789,9 @@
789 789
               <div>
790 790
                 <span style="width:70px;display:inline-block">
791 791
                   {{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : "/" }}
792
-                </span>ml
792
+                </span>
793
+
794
+                <span>L</span>
793 795
               </div>
794 796
             </td>
795 797
             <td width="100" style="border:none;border-left:1px solid #000;padding-left:5px">

+ 25 - 23
src/xt_pages/medicalScheduling/index.vue Dosyayı Görüntüle

@@ -7,7 +7,7 @@
7 7
                 <el-button type="primary" @click="DeleteStaffSchedule">清除</el-button>
8 8
                 <el-button type="primary" @click="copyStaffSchedule">复制</el-button>
9 9
                 <el-button type="primary" icon="el-icon-printer" @click="toPrint">打印</el-button>
10
-                <el-button type="primary" icon="el-icon-printer" @click="toPrint">导出</el-button>
10
+                <!-- <el-button type="primary" icon="el-icon-printer" @click="toPrint">导出</el-button> -->
11 11
             </div>
12 12
         </div>
13 13
         <div class="app-container">
@@ -313,19 +313,25 @@
313 313
                             </el-table>
314 314
                         </el-tab-pane>
315 315
                     </el-tabs>
316
-                    <!-- <div style="margin-top:20px;">
317
-                        <p style="line-height:20px;">1.默认科室所有排序在职员工账号</p>
318
-                        <p style="line-height:20px;">2.护士默认排序,按加入机构先后降序排序,最先加入机构的排序为1,显示在列表最下面,自定义排序,最大的序号排在最上面</p>
319
-                        <p style="line-height:20px;">3.职称显示与管理中旬的员工列表显示的职称一样</p>
320
-                        <p style="line-height:20px;">4.是否排班,默认机构所有用户是“是”,如果是否,则该用户不在医护排班列表中</p>
321
-                    </div> -->
316
+                 
322 317
                 </div>
323
-                <!-- <div slot="footer" class="dialog-footer">
324
-                <el-button @click="hide">取 消</el-button>
325
-                <el-button type="primary" @click="submitAction()">保 存</el-button>
326
-                </div> -->
327
-            </el-dialog>
318
+            </el-dialog>    
328 319
         </div>
320
+
321
+
322
+        <el-dialog
323
+            title="导出排班"
324
+            :visible.sync="exportDialogVisible"
325
+            width="30%"
326
+            :before-close="handleClose">
327
+            <span>
328
+
329
+            </span>
330
+            <span slot="footer" class="dialog-footer">
331
+                <el-button @click="dialogVisible = false">取 消</el-button>
332
+                <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
333
+            </span>
334
+        </el-dialog>    
329 335
     </div>
330 336
 </template>
331 337
 
@@ -391,22 +397,18 @@ export default {
391 397
            arrFive:[],
392 398
            arrSix:[],
393 399
            arrSeven:[],
394
-
395
-           //
396
-            nurseVisible:false,
397
-            activeName:'nurse',
398
-            radio:'1',
399
-            nurseTableData:[],
400
-            doctorTableData:[],
400
+           nurseVisible:false,
401
+           activeName:'nurse',
402
+           radio:'1',
403
+           nurseTableData:[],
404
+           doctorTableData:[],
405
+           exportDialogVisible:false
401 406
         }
402 407
     },
403 408
     methods:{
404 409
         search(){},
405 410
         toPrint(){
406
-            this.$router.push({
407
-                path: '/medicalScheduling/schedule/print?starttime='+this.getTimestamp(this.weekDayArr[0])+"&endtime="+this.getTimestamp(this.weekDayArr[6])+"&weekArr="+ this.weekDayArr+"&typeValue="+this.typeValue,
408
-                // query: { date: date }
409
-            })
411
+          this.exportDialogVisible = true
410 412
         },
411 413
         getDoctorList(){
412 414
             getDoctorList().then(response=>{

+ 330 - 0
src/xt_pages/stock/selfPreparedMedicine/stockquery.vue Dosyayı Görüntüle

@@ -0,0 +1,330 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container ">
7
+      <div style="justify-content: space-between;margin: 0px 0 12px 0;display: flex;align-items: center;">
8
+        <div>
9
+          <el-select v-model="type_name" style="width:140px;margin-right:10px;" placeholder="请选择"
10
+          @change="changeTypeName">
11
+            <el-option
12
+              v-for="item in drugType"
13
+              :key="item.id"
14
+              :label="item.name"
15
+              :value="item.id">
16
+            </el-option>
17
+          </el-select>
18
+          <el-date-picker
19
+            size="small"
20
+            v-model="start_time"
21
+            prefix-icon="el-icon-date"
22
+            :editable="false"
23
+            style="width: 196px;"
24
+            type="date"
25
+            placeholder="选择日期时间"
26
+            align="right"
27
+            format="yyyy-MM-dd"
28
+            value-format="yyyy-MM-dd"
29
+            @change="startTimeChange"
30
+           ></el-date-picker>-
31
+            <el-date-picker
32
+              size="small"
33
+              v-model="end_time"
34
+              prefix-icon="el-icon-date"
35
+              :editable="false"
36
+              style="width: 196px;"
37
+              type="date"
38
+              placeholder="选择日期时间"
39
+              align="right"
40
+              format="yyyy-MM-dd"
41
+              value-format="yyyy-MM-dd"
42
+              @change="endTimeChange"
43
+          ></el-date-picker>
44
+          <el-input
45
+            size="small"
46
+            style="width: 200px;margin-left:10px;"
47
+            class="filter-item"
48
+            v-model.trim="keywords"
49
+            placeholder="药品名称"
50
+          />
51
+          <el-button
52
+            size="small"
53
+            class="filter-item"
54
+            type="primary"
55
+            icon="el-icon-search"
56
+            @click="search"
57
+            >搜索</el-button
58
+          >
59
+        </div>
60
+        <div>
61
+          <el-button size="small" type="primary" @click="exportList">导出</el-button>
62
+          <el-button size="small" type="primary" @click="toPrint">打印</el-button>
63
+        </div>
64
+      </div>
65
+      
66
+
67
+      <el-table
68
+        :row-style="{ color: '#303133' }"
69
+        :header-cell-style="{
70
+          backgroundColor: 'rgb(245, 247, 250)',
71
+          color: '#606266'
72
+        }"
73
+        :data="tableData"
74
+        :class="signAndWeighBoxPatients"
75
+        border
76
+      >
77
+        <el-table-column label="药品名称" align="center">
78
+          <template slot-scope="scope">
79
+            <span>{{scope.row.drug_name?scope.row.drug_name:""}}</span>
80
+          </template>
81
+        </el-table-column>
82
+        <el-table-column label="规格名称" align="center">
83
+          <template slot-scope="scope">
84
+            <span>{{scope.row.drug_spec?scope.row.drug_spec:""}}</span>
85
+          </template>
86
+        </el-table-column>
87
+        <el-table-column label="入库数量" align="center">
88
+          <template slot-scope="scope">
89
+            <span>{{scope.row.Count?scope.row.Count:""}}</span>
90
+          </template>
91
+        </el-table-column>
92
+        <el-table-column label="实际入库" align="center">
93
+          <template slot-scope="scope">
94
+            <span>{{scope.row.Count?scope.row.Count:""}}</span>
95
+          </template>
96
+        </el-table-column>
97
+        <el-table-column label="出库数量" align="center">
98
+          <template slot-scope="scope">
99
+            <span>{{scope.row.outCount?scope.row.outCount:""}}</span>
100
+          </template>
101
+        </el-table-column>
102
+        <el-table-column label="实际出库" align="center">
103
+          <template slot-scope="scope">
104
+            <span>{{scope.row.outCount?scope.row.outCount:""}}</span>
105
+          </template>
106
+        </el-table-column>
107
+        <el-table-column label="剩余库存" align="center">
108
+          <template slot-scope="scope">
109
+            <span>{{scope.row.total?scope.row.total:""}}</span>
110
+          </template>
111
+        </el-table-column>
112
+       
113
+      </el-table>
114
+      <el-pagination
115
+        @size-change="handleSizeChange"
116
+        @current-change="handleCurrentChange"
117
+        :page-sizes="[10, 50, 100,200,500,1000]"
118
+        :page-size="10"
119
+        background
120
+        align="right"
121
+        style="margin-top:20px;"
122
+        layout="total, sizes, prev, pager, next, jumper"
123
+        :total="total"
124
+      >
125
+      </el-pagination>
126
+    </div>
127
+  </div>
128
+</template>
129
+
130
+<script>
131
+import { uParseTime } from "@/utils/tools";
132
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
133
+import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
134
+import { getSelfStockQuery } from "@/api/drug/drug"
135
+export default {
136
+  name: "stockIn",
137
+  created() {
138
+    var types =  getDictionaryDataConfig('system','drug_type')
139
+    console.log("44444",types)
140
+    var arr= []
141
+    var obj = {id:0,name:"全部" }
142
+    arr.push(obj)
143
+    arr.push(...types)
144
+    this.drugType = arr
145
+    console.log("arrr",arr)
146
+    this.getlist()
147
+  },
148
+  components: {
149
+    BreadCrumb
150
+  },
151
+  data() {
152
+    return {
153
+      crumbs: [
154
+        { path: false, name: "库存管理" },
155
+        { path: "/stock/query", name: "库存查询" }
156
+      ],
157
+      keywords: "",
158
+      total: 0,
159
+      multipleSelection: [],
160
+      signAndWeighBoxPatients: "sign-and-weigh-box-patients",
161
+      start_time: "",
162
+      end_time: "",
163
+      page: 1,
164
+      limit: 10,
165
+      tableData:[],
166
+      drugType:[],
167
+      type_name:0,
168
+      stockOutData:[]
169
+    };
170
+  },
171
+  methods: {
172
+     
173
+     getlist(){
174
+         var params ={
175
+           type_name:this.type_name,
176
+           start_time:this.start_time,
177
+           end_time:this.end_time,
178
+           keywords:this.keywords,
179
+           page:this.page,
180
+           limit:this.limit
181
+         }
182
+        console.log("params",params)
183
+       getSelfStockQuery(params).then(response=>{
184
+          if(response.data.state == 1){
185
+            var stockQuery =  response.data.data.stockQuery
186
+            console.log("入库",stockQuery)
187
+            this.total = response.data.data.total
188
+            console.log("total",this.total)
189
+            var stockOutQuery = response.data.data.stockOutQuery
190
+            console.log("stockOut",stockOutQuery)
191
+             for(let i=0;i<stockQuery.length;i++){
192
+               for(let j=0;j<stockOutQuery.length;j++){
193
+                  if(stockQuery[i].drug_name_id == stockOutQuery[j].drug_name_id ){
194
+                     stockQuery[i].outCount = stockOutQuery[j].Count
195
+                     stockQuery[i].total = stockQuery[i].Count - stockOutQuery[j].Count
196
+                  }
197
+               }
198
+             }
199
+            console.log("表格数据",stockQuery)
200
+             this.tableData = stockQuery
201
+          }
202
+       })
203
+     },
204
+    handleSizeChange(val) {
205
+      this.limit = val;
206
+      this.getlist()
207
+    },
208
+    handleCurrentChange(val) {
209
+      this.page = val;
210
+      this.getlist()
211
+    },
212
+  
213
+    startTimeChange: function(val) {
214
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
215
+      
216
+      if (time > 0) {
217
+        this.$message.error("开始时间不能大于结束时间");
218
+        this.start_time = "";
219
+      } else {
220
+        this.getlist()
221
+      }
222
+    },
223
+    endTimeChange: function(val) {
224
+      var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);
225
+      if (time < 0) {
226
+        this.$message.error("结束时间不能小于开始时间");
227
+        this.end_time = "";
228
+      } else {
229
+        this.getlist()
230
+      }
231
+     
232
+    },
233
+   
234
+
235
+    search: function() {
236
+      this.getlist()
237
+    },
238
+
239
+    exportList(){
240
+         import('@/vendor/Export2Excel').then(excel => {
241
+         const tHeader = ['药品名称', '规格名称', '入库数量','实际入库','出库数量','实际出库','剩余库存']
242
+         const filterVal = ['drug_name', 'drug_spec', 'Count','Count','outCount','outCount','total'] 
243
+         const data = this.formatJson(filterVal, this.tableData)
244
+      
245
+         excel.export_json_to_excel({
246
+           header: tHeader,
247
+           data,
248
+           filename: '库存查询'
249
+         })
250
+          this.downloadLoading = false
251
+        })
252
+       },
253
+       formatJson(filterVal, jsonData) {
254
+        return jsonData.map(v => filterVal.map(j => v[j]));
255
+      },
256
+      changeTypeName(){
257
+        this.getlist()
258
+      },
259
+      toPrint(){
260
+        this.$router.push("/stock/selfstockprint?start_time="+this.start_time+"&end_time="+this.end_time+"&keyword="+this.keywords+"&type_name="+this.type_name)
261
+        
262
+      },
263
+
264
+     
265
+      getTimestamp(time) {
266
+      // 把时间日期转成时间戳
267
+      return new Date(time).getTime() / 1000;
268
+    },
269
+      getDictionaryDataConfig(module, filed_name) {
270
+        return getDictionaryDataConfig(module, filed_name)
271
+
272
+      },
273
+      getDataConfig(module, filed_name){
274
+        return getDataConfig(module, filed_name)
275
+      },
276
+  }
277
+};
278
+</script>
279
+
280
+<style rel="stylesheet/css" lang="scss" scoped>
281
+.information {
282
+  border: 1px #dcdfe6 solid;
283
+  padding: 30px 20px 30px 20px;
284
+
285
+  .border {
286
+    border-bottom: 1px #dcdfe6 solid;
287
+    margin: 0px 0 20px 0;
288
+  }
289
+}
290
+
291
+.title {
292
+  background: #409eff;
293
+  height: 44px;
294
+  line-height: 44px;
295
+  padding: 0 0 0 10px;
296
+  color: #fff;
297
+  margin: 0 0 10px 0;
298
+}
299
+
300
+.edit_separater {
301
+  border-top: 1px solid rgb(233, 233, 233);
302
+  margin-top: 15px;
303
+  margin-bottom: 15px;
304
+}
305
+</style>
306
+
307
+<style>
308
+.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
309
+  font-size: 12px;
310
+}
311
+
312
+.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
313
+  background: #6fb5fa;
314
+}
315
+
316
+.count {
317
+  color: #bd2c00;
318
+}
319
+.el-table td,
320
+.el-table th.is-leaf,
321
+.el-table--border,
322
+.el-table--group {
323
+  border-color: #d0d3da;
324
+}
325
+.el-table--border::after,
326
+.el-table--group::after,
327
+.el-table::before {
328
+  background-color: #d0d3da;
329
+}
330
+</style>

+ 202 - 0
src/xt_pages/stock/selfStockPrint.vue Dosyayı Görüntüle

@@ -0,0 +1,202 @@
1
+<template>
2
+    <div class="main-contain">
3
+        <div class="position">
4
+        <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+        <el-row style="float:right;">
6
+            <el-col :span="24">
7
+            <el-button size="small" icon="el-icon-printer" type="primary" @click="printAction">打印</el-button>
8
+            </el-col>
9
+        </el-row>
10
+        </div>
11
+        <div class="app-container" style="background-color: white;">
12
+            <div id="print_content">
13
+                <div class="print_main_content">
14
+                    <div class="order_title_panl">
15
+                        <span class="main_title">耗材管理查询表</span>
16
+                    </div>
17
+                    <div style="text-align:right;margin-bottom:20px;font-size: 18px;">
18
+                      打印时间:{{time_now}}
19
+                    </div>
20
+                    <div class="table_panel">
21
+                        <table class="table">
22
+                            <thead>
23
+                                <tr>
24
+                                    <td width="60">药品名称</td>
25
+                                    <td width="80">规格名称</td>
26
+                                    <td width="80">入库数量</td>
27
+                                    <td width="80">实际入库</td>
28
+                                    <td width="80">出库数量</td>
29
+                                    <td width="80">实际出库</td>
30
+                                    <td width="80">剩余库存</td>
31
+                                </tr>
32
+                            </thead>
33
+                            <tbody>
34
+                                <tr v-for='(item,index) in tableData' :key="index">
35
+                                    <td>{{item.drug_name}}</td>
36
+                                    <td>{{item.drug_spec}}</td>
37
+                                    <td>{{item.Count}}</td>
38
+                                    <td>{{item.Count}}</td>
39
+                                    <td>{{item.outCount}}</td>
40
+                                    <td>{{item.outCount}}</td>
41
+                                    <td>{{item.total}}</td>
42
+                                </tr>
43
+                            </tbody>
44
+                        </table>
45
+                    </div>
46
+                </div>
47
+            </div>
48
+        </div>
49
+    </div>
50
+</template>
51
+
52
+<script>
53
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
54
+import { getSelfStockQuery } from "@/api/drug/drug"
55
+import print from 'print-js'
56
+const moment = require('moment')
57
+export default {
58
+    components:{
59
+        BreadCrumb
60
+    },
61
+    data(){
62
+        return{
63
+          crumbs: [
64
+            { path: false, name: '自备药管理' },
65
+            { path: false, name: '库存查询' },
66
+            { path: false, name: '库存打印' },
67
+          ],
68
+          start_time:"",
69
+          end_time:"",
70
+          drug_name:"",
71
+          drug_spec:"",
72
+          keyword:"",
73
+          tableData:[],
74
+          time_now:moment(new Date()).add('year',0).format("YYYY-MM-DD"),
75
+          type_name:"",
76
+          limit:20,
77
+          page:1,
78
+        }
79
+    },
80
+    methods:{
81
+      printAction: function() {
82
+          const style = '@media print { .print_main_content { background-color: white; width:960px;  margin:0 auto; padding: 0 0 20px 0; } .order_title_panl { text-align: center; } .main_title { font-size: 18px; line-height: 40px; font-weight: 500; } .table_panel { } .table { width: 100%; border: 1px solid; border-collapse: collapse; padding: 2px; } thead tr td { border: 1px solid; text-align: center; font-size: 16px; padding: 15px 5px; } tbody tr td { border: 1px solid; text-align: center; font-size: 16px; padding: 10px 5px; white-space: pre-line;} .proj { padding: 5px 0; text-align: left; } .proj_title { font-size: 16px; font-weight: 500; line-height: 25px; } .proj_item { font-size: 15px; line-height: 20px; } .zone_name { font-weight: 500; } }'
83
+          printJS({
84
+          printable: 'print_content',
85
+          type: 'html',
86
+          documentTitle: '  ',
87
+          style: style,
88
+          scanStyles: false
89
+          })
90
+      },
91
+      getlist(){
92
+          var params ={
93
+           type_name:this.type_name,
94
+           start_time:this.start_time,
95
+           end_time:this.end_time,
96
+           keywords:this.keywords,
97
+           page:this.page,
98
+           limit:this.limit
99
+         }
100
+          console.log("params",params)
101
+         getSelfStockQuery(params).then(response=>{
102
+          if(response.data.state == 1){
103
+            var stockQuery =  response.data.data.stockQuery
104
+            var stockOutQuery = response.data.data.stockOutQuery
105
+             for(let i=0;i<stockQuery.length;i++){
106
+               for(let j=0;j<stockOutQuery.length;j++){
107
+                  if(stockQuery[i].drug_name_id == stockOutQuery[j].drug_name_id ){
108
+                     stockQuery[i].outCount = stockOutQuery[j].Count
109
+                     stockQuery[i].total = stockQuery[i].Count - stockOutQuery[j].Count
110
+                  }
111
+               }
112
+             }
113
+            console.log("表格数据",stockQuery)
114
+             this.tableData = stockQuery
115
+          }
116
+       })
117
+      },
118
+    },
119
+    created(){
120
+      var starttime =  this.$route.query.start_time
121
+      this.start_time = starttime
122
+      var endtime =  this.$route.query.end_time
123
+      this.end_time = endtime
124
+      var type_name = this.$route.query.type_name
125
+      this.type_name = type_name
126
+      var keyword = this.$route.query.keyword
127
+      this.keyword = keyword
128
+
129
+      this.getlist()
130
+    }
131
+}
132
+</script>
133
+
134
+
135
+<style rel="stylesheet/scss" lang="scss" scoped>
136
+.print_main_content {
137
+  background-color: white;
138
+  max-width: 1500px;
139
+  margin: 0 auto;
140
+  padding: 0 0 20px 0;
141
+
142
+  .order_title_panl {
143
+    text-align: center;
144
+
145
+    .main_title {
146
+      font-size: 18px;
147
+      line-height: 40px;
148
+      font-weight: 500;
149
+    }
150
+  }
151
+  .table_panel {
152
+    .table {
153
+      width: 100%;
154
+      border: 1px solid;
155
+      border-collapse: collapse;
156
+      padding: 2px;
157
+      
158
+
159
+      thead {
160
+        tr {
161
+          td {
162
+            border: 1px solid;
163
+            text-align: center;
164
+            font-size: 18px;
165
+            padding: 15px 5px;
166
+          }
167
+        }
168
+      }
169
+      tbody {
170
+        tr {
171
+          td {
172
+            border: 1px solid;
173
+            text-align: center;
174
+            font-size: 18px;
175
+            padding: 10px 5px;
176
+            white-space: pre-line;
177
+            .proj {
178
+              padding: 5px 0;
179
+              text-align: left;
180
+
181
+              .proj_title {
182
+                font-size: 16px;
183
+                font-weight: 500;
184
+                line-height: 25px;
185
+              }
186
+
187
+              .proj_item {
188
+                font-size: 15px;
189
+                line-height: 20px;
190
+
191
+                .zone_name {
192
+                  font-weight: 500;
193
+                }
194
+              }
195
+            }
196
+          }
197
+        }
198
+      }
199
+    }
200
+  }
201
+}
202
+</style>