Browse Source

feat:[档案管理]给药制剂档案

lkf
15881625488@163.com 2 months ago
parent
commit
d7d73b5f02
9 changed files with 1038 additions and 6 deletions
  1. +60
    -0
      src/api/business/gyzj/gyzjArchive.js
  2. +11
    -2
      src/lang/en/business/resource/gyzj.js
  3. +2
    -2
      src/lang/en/business/study/studyEnter.js
  4. +11
    -1
      src/lang/zh/business/resource/gyzj.js
  5. +468
    -0
      src/views/business/archive/formulation/comps/ffjlList.vue
  6. +269
    -0
      src/views/business/archive/formulation/comps/gyzjList.vue
  7. +94
    -0
      src/views/business/archive/formulation/index.vue
  8. +122
    -0
      src/views/business/comps/common/sign.vue
  9. +1
    -1
      src/views/business/study/comp/sign.vue

+ 60
- 0
src/api/business/gyzj/gyzjArchive.js View File

@ -0,0 +1,60 @@
import request from '@/utils/request'
// 列表
export function list(query) {
return request({
url: '/system/business/gyzjArchive/list',
method: 'get',
params: query
})
}
export function tygd(data) {
return request({
url: '/system/business/gyzjArchive/tygd',
method: 'post',
data: data
})
}
export function jjgd(data) {
return request({
url: '/system/business/gyzjArchive/jjgd',
method: 'post',
data: data
})
}
export function tyjd(data) {
return request({
url: '/system/business/gyzjArchive/tyjd',
method: 'post',
data: data
})
}
export function jjjd(data) {
return request({
url: '/system/business/gyzjArchive/jjjd',
method: 'post',
data: data
})
}
export function tyjy(data) {
return request({
url: '/system/business/gyzjArchive/tyjy',
method: 'post',
data: data
})
}
export function jjjy(data) {
return request({
url: '/system/business/gyzjArchive/jjjy',
method: 'post',
data: data
})
}
export function qrgh(data) {
return request({
url: '/system/business/gyzjArchive/qrgh',
method: 'post',
data: data
})
}

+ 11
- 2
src/lang/en/business/resource/gyzj.js View File

@ -81,7 +81,7 @@ export default {
cksj: 'Out of Storage Date', cksj: 'Out of Storage Date',
rksj: 'Into Storage Date', rksj: 'Into Storage Date',
jiaqian: 'Sign', jiaqian: 'Sign',
gyzjgl: 'FormulationManage',
gyzjgl: 'Formulation Manage',
ffhsjl: 'In-and-Out Record', ffhsjl: 'In-and-Out Record',
bdxx: 'Record Information', bdxx: 'Record Information',
jbxx: 'Information', jbxx: 'Information',
@ -125,5 +125,14 @@ export default {
quchu: 'Take Out', quchu: 'Take Out',
cunchu: 'Storage', cunchu: 'Storage',
sfcc:'To Storage', sfcc:'To Storage',
bdmc:'Preset Name'
bdmc:'Preset Name',
gyzjda:'Formulation Archive',
lqffda:'领取发放档案',
tygd:'同意归档',
jjgd:'拒绝归档',
tyjd:'同意解档',
jjjd:'拒绝解档',
tyjy:'同意借阅',
jjjy:'拒绝借阅',
qrgh:'确认归还',
} }

+ 2
- 2
src/lang/en/business/study/studyEnter.js View File

@ -20,8 +20,8 @@ export default {
sjlb: '试剂列表', sjlb: '试剂列表',
gsplb: '供试品列表', gsplb: '供试品列表',
gyzjlb: 'FormulationManage',
mjylb: 'DrugManage',
gyzjlb: 'Formulation List',
mjylb: 'Drug List',
xblb: '细胞列表', xblb: '细胞列表',
xjlb: '细菌列表' xjlb: '细菌列表'
} }

+ 11
- 1
src/lang/zh/business/resource/gyzj.js View File

@ -125,5 +125,15 @@ export default {
quchu: '取出', quchu: '取出',
cunchu: '存储', cunchu: '存储',
sfcc:'是否存储', sfcc:'是否存储',
bdmc:'表单名称'
bdmc:'表单名称',
gyzjda:'给药制剂档案',
lqffda:'领取发放档案',
tygd:'同意归档',
jjgd:'拒绝归档',
tyjd:'同意解档',
jjjd:'拒绝解档',
tyjy:'同意借阅',
jjjy:'拒绝借阅',
qrgh:'确认归还',
} }

+ 468
- 0
src/views/business/archive/formulation/comps/ffjlList.vue View File

@ -0,0 +1,468 @@
<template>
<div>
<div>
<!-- 列表 -->
<div class="ffjl" v-show="!showDetail">
<el-form :model="queryParams" ref="queryForm" class="search-area" :inline="true" label-width="88px">
<el-row>
<el-col :span="24">
<!-- 名称 -->
<el-form-item :label="$t('page.business.resource.gyzj.mc') + ':'">
<el-input v-model="queryParams.mc" clearable
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 编号 -->
<el-form-item :label="$t('page.business.resource.gyzj.bh') + ':'">
<el-input v-model="queryParams.bh" clearable
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 目的 -->
<el-form-item :label="$t('page.business.resource.gyzj.md') + ':'">
<el-input v-model="queryParams.mdId" clearable
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 记录状态 -->
<el-form-item :label="$t('page.business.resource.gyzj.jlzt') + ':'">
<el-select v-model="queryParams.jlzt" :placeholder="$t('form.placeholderSelect')" clearable
>
<el-option :label="$t('page.business.resource.resource.jlzt.wsd')" :value="1" />
<el-option :label="$t('page.business.resource.resource.jlzt.ysd')" :value="3" />
<el-option :label="$t('page.business.resource.resource.jlzt.dgd')" :value="5" />
<el-option :label="$t('page.business.resource.resource.jlzt.gd')" :value="7" />
<el-option :label="$t('page.business.resource.resource.jlzt.djd')" :value="9" />
</el-select>
</el-form-item>
<!-- 借阅状态 -->
<el-form-item :label="$t('page.business.resource.gyzj.jyzt') + ':'" :label-width="$i18n.locale === 'zh_CN'?'88px':'150px'">
<el-select v-model="queryParams.jyzt" :placeholder="$t('form.placeholderSelect')" clearable>
<el-option :label="$t('page.business.resource.resource.jyzt.wjy')" :value="1" />
<el-option :label="$t('page.business.resource.resource.jyzt.djy')" :value="3" />
<el-option :label="$t('page.business.resource.resource.jyzt.jyz')" :value="5" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('form.reset') }}</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<!-- 出库日期 -->
<el-form-item :label="$t('page.business.resource.gyzj.cksj') + ':'" :label-width="$i18n.locale === 'zh_CN'?'88px':'180px'">
<el-date-picker v-model="daterangeCk" class="chat-histogram-daterange" type="daterange"
range-separator="-" :start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')"
value-format="yyyy-MM-dd" @change="handleQuery" style="width: 250px;" />
</el-form-item>
<!-- 入库日期 -->
<el-form-item :label="$t('page.business.resource.gyzj.rksj') + ':'" :label-width="$i18n.locale === 'zh_CN'?'88px':'180px'">
<el-date-picker v-model="daterangeRk" class="chat-histogram-daterange" type="daterange"
range-separator="-" :start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')"
value-format="yyyy-MM-dd" @change="handleQuery" style="width: 250px;" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- 批量归档 -->
<el-button type="primary" :disabled="multiple" @click="handlePlgd"
v-hasPermi="['business:resource:gyzj:ffjlgd']">{{
$t('page.business.resource.gyzj.plgd') }}</el-button>
</el-col>
<el-col :span="1.5">
<!-- 批量锁定 -->
<el-button type="primary" :disabled="multiple" @click="handlePlsd"
v-hasPermi="['business:resource:gyzj:ffjlsd']">{{
$t('page.business.resource.gyzj.plsd') }}</el-button>
</el-col>
<el-col :span="1.5">
<!-- 导出 -->
<el-button type="primary" @click="exportExcel"
v-hasPermi="['business:resource:gyzj:ffjldc']">{{
$t('form.export') }}</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" fixed="left" width="55" align="center" :selectable="checkSelectable" />
<el-table-column :label="$t('page.business.resource.gyzj.bh')" align="center" prop="bh"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.mc')" align="left" prop="mc"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.md')" align="center" width="100px" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span v-if="scope.row.mdOther && scope.row.mdOther != ''&&scope.row.mdMcs && scope.row.mdMcs != ''">{{ scope.row.mdMcs }},{{ scope.row.mdOther }}</span>
<span v-else>{{ scope.row.mdMcs }}{{ scope.row.mdOther }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.zytj')" align="center" prop="ffzytj" :width="$i18n.locale === 'zh_CN'?'100px':'180px'"/>
<el-table-column :label="$t('page.business.resource.gyzj.cksj')" align="center" prop="ffrq" width="150px" />
<el-table-column :label="$t('page.business.resource.gyzj.rksj')" align="center" prop="ghrq" width="150px" />
<el-table-column :label="$t('page.business.resource.gyzj.ckl')" align="center" :width="$i18n.locale === 'zh_CN'?'100px':'180px'">
<template slot-scope="scope">
{{ scope.row.ckl }} {{ scope.row.ckldw }}
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.rkl')" align="center" :width="$i18n.locale === 'zh_CN'?'100px':'180px'">
<template slot-scope="scope">
{{ scope.row.rkl }} {{ scope.row.rkldw }}
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.syl')" align="center" :width="$i18n.locale === 'zh_CN'?'80px':'120px'">
<template slot-scope="scope">
{{ scope.row.syl }} {{ scope.row.syldw }}
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.kgy1')" align="center" prop="jsr1Mc" :width="$i18n.locale === 'zh_CN'?'80px':'180px'"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.kgy2')" align="center" prop="jsr2Mc" :width="$i18n.locale === 'zh_CN'?'80px':'180px'"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.lqr1')" align="center" prop="lqr1Mc" :width="$i18n.locale === 'zh_CN'?'80px':'100px'"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.lqr2')" align="center" prop="lqr2Mc" :width="$i18n.locale === 'zh_CN'?'80px':'100px'"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.zcg')" align="center" prop="zcgMc"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.jlzt')" align="center" width="100px" fixed="right">
<template slot-scope="scope">
<span v-if="scope.row.jlzt == 1"><span class="status-circle wsd"></span>{{ $t('page.business.resource.resource.jlzt.wsd') }}</span>
<span v-if="scope.row.jlzt == 3"><span class="status-circle ysd"></span>{{ $t('page.business.resource.resource.jlzt.ysd') }}</span>
<span v-if="scope.row.jlzt == 5"><span class="status-circle dgd"></span>{{ $t('page.business.resource.resource.jlzt.dgd') }}</span>
<span v-if="scope.row.jlzt == 7"><span class="status-circle gd"></span>{{ $t('page.business.resource.resource.jlzt.gd') }}</span>
<span v-if="scope.row.jlzt == 9"><span class="status-circle djd"></span>{{ $t('page.business.resource.resource.jlzt.djd') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.jyzt')" align="center" fixed="right" :width="$i18n.locale === 'zh_CN'?'100px':'180px'">
<template slot-scope="scope">
<span v-if="scope.row.jyzt == 1"><span class="status-circle wjy"></span>{{ $t('page.business.resource.resource.jyzt.wjy') }}</span>
<span v-if="scope.row.jyzt == 3"><span class="status-circle djy"></span>{{ $t('page.business.resource.resource.jyzt.djy') }}</span>
<span v-if="scope.row.jyzt == 5"><span class="status-circle jyz"></span>{{ $t('page.business.resource.resource.jyzt.jyz') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('form.operate')" fixed="right" align="center"
class-name="small-padding fixed-width" width="250px">
<template slot-scope="scope">
<!-- 加签 -->
<el-button v-if="scope.row.jlzt == 1" type="text" @click="handleJq(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjljq']">{{
$t('page.business.resource.gyzj.jiaqian') }}</el-button>
<!-- 详情 -->
<el-button v-if="scope.row.jlzt == 1 || scope.row.jlzt == 3 || scope.row.jlzt == 7" type="text"
@click="handleXq(scope.row)" v-hasPermi="['business:resource:gyzj:ffjlxq']">{{
$t('page.business.resource.gyzj.detail') }}</el-button>
<!-- 锁定 -->
<el-button type="text" v-if="scope.row.jlzt == 1" @click="handleSd(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjlsd']">{{
$t('page.business.resource.gyzj.lock') }}</el-button>
<!-- 解锁 -->
<el-button type="text" v-if="scope.row.jlzt == 3" @click="handleJs(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjljs']">{{
$t('page.business.resource.gyzj.unlock') }}</el-button>
<!-- 归档 -->
<el-button type="text" v-if="scope.row.jlzt == 3" @click="handleGd(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjlgd']">{{
$t('page.business.resource.gyzj.guidang') }}</el-button>
<!-- 解档 -->
<el-button type="text" v-if="scope.row.jlzt == 7" @click="handleJd(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjljd']">{{
$t('page.business.resource.gyzj.jiedang') }}</el-button>
<!-- 借阅 -->
<el-button type="text" v-if="scope.row.jlzt == 7 && scope.row.jyzt == 1" @click="handleJy(scope.row)"
v-hasPermi="['business:resource:gyzj:ffjljy']">{{
$t('page.business.resource.gyzj.jieyue') }}</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</div>
</div>
</template>
<script>
import { list } from "@/api/business/gyzj/gyzjFfjl"
import moment from "moment";
import { deepClone } from "@/utils/index";
export default {
name: "FfjlList",
components: { },
data() {
return {
daterangeCk: [],
daterangeRk: [],
loading: true,
showDetail: false,
single: true,
multiple: true,
total: 0,
list: [],
//
selectList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
mc: null,
mdId: null,
jlzt: null,
jyzt: null,
bh: null,
startDateCk: null,
endDateCk: null,
startDateRk: null,
endDateRk: null,
},
}
},
created() {
this.getList()
},
methods: {
exportExcel() {
let that = this
that.$modal.loading()
let params = deepClone(this.queryParams)
params.pageSize = 999999
list(params).then(response => {
var tabelStr =
'<table border="1" class="html-tabel">' +
'<tr style="background:#eee;">' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.mc') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.bh') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.md') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.zytj') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.cksj') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.rksj') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.ckmz') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.rkmz') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.syl') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.lqr1') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.lqr2') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.kgy1') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.kgy2') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.zcg') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.jlzt') + '</th>' +
'<th style="text-align: center;">' + this.$t('page.business.resource.gyzj.jyzt') + '</th>' +
' </tr>'
let _datastr = ''
_.forEach(response.rows, function (value) {
let jlzt = ''
switch (value.jlzt) {
case 1:
jlzt = that.$t('page.business.resource.resource.jlzt.wsd')
break
case 3:
jlzt = that.$t('page.business.resource.resource.jlzt.ysd')
break
case 5:
jlzt = that.$t('page.business.resource.resource.jlzt.dgd')
break
case 7:
jlzt = that.$t('page.business.resource.resource.jlzt.gd')
break
case 9:
jlzt = that.$t('page.business.resource.resource.jlzt.djd')
break
default: zjzt = ''
}
let jyzt = ''
switch (value.jyzt) {
case 1:
jyzt = that.$t('page.business.resource.resource.jyzt.wjy')
break
case 3:
jyzt = that.$t('page.business.resource.resource.jyzt.djy')
break
case 5:
jyzt = that.$t('page.business.resource.resource.jyzt.jyz')
break
default: jyzt = ''
}
_datastr =
_datastr +
'<tr style="text-align: center;">' +
' <td>' +
value.mc +
'</td>' +
' <td>' +
'&nbsp;'+value.bh +
'</td>' +
' <td>' +
(value.mdMcs&&value.mdMcs!=''&&value.mdOther&&value.mdOther!=''? (value.mdMcs +","+value.mdOther) :(value.mdMcs +value.mdOther))+
'</td>' +
' <td>' +
value.ffzytj +
'</td>' +
' <td>' +
value.ffrq +
'</td>' +
' <td>' +
value.ghrq +
'</td>' +
' <td>' +
value.ckl +value.ckldw+
'</td>' +
' <td>' +
value.rkl+value.rkldw +
'</td>' +
' <td>' +
value.syl+value.syldw +
'</td>' +
' <td>' +
value.lqr1Mc +
'</td>' +
' <td>' +
value.lqr2Mc +
'</td>' +
' <td>' +
value.jsr1Mc +
'</td>' +
' <td>' +
value.jsr2Mc +
'</td>' +
' <td>' +
value.zcgMc +
'</td>' +
' <td>' +
jlzt +
'</td>' +
' <td>' +
jyzt +
'</td>' +
'</tr>'
})
tabelStr = tabelStr + _datastr + ' <table>'
// Worksheet
var worksheet = that.$t('page.business.resource.gyzj.ffhsjl')
var uri = 'data:application/vnd.ms-excel;base64,'
// HTML
var exportTemplate = `<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name>
<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
</head>
<body>
${tabelStr}
</body>
</html>`
var a = document.createElement('a')
a.download = worksheet + '.xls'
a.href = uri + window.btoa(unescape(encodeURIComponent(exportTemplate)))
a.click()
that.$modal.closeLoading()
}).finally(() => {
that.$modal.closeLoading()
})
},
//
handleJq(row) {
this.$refs.Jq.show(row)
},
//
handleSd(row) {
this.$refs.Sd.show(row)
},
//
handleJs(row) {
this.$refs.Js.show(row)
},
//
handlePlgd() {
this.$refs.Gd.showBatch(this.selectList)
},
//
handlePlsd() {
this.$refs.Sd.showBatch(this.selectList)
},
closeXq() {
this.showDetail = false
this.$emit('showDetail', this.showDetail)
this.handleQuery()
},
//
handleXq(row) {
this.showDetail = true
this.$emit('showDetail', this.showDetail)
this.$refs.Xq.show(row)
},
//
handleGd(row) {
this.$refs.Gd.show(row)
},
//
handleJy(row) {
this.$refs.Jy.show(row)
},
//
handleJd(row) {
this.$refs.Jd.show(row)
},
//
checkSelectable(row) {
return true;
},
//
getList() {
if (this.daterangeCk != null && this.daterangeCk.length > 0) {
this.queryParams.startDateCk = this.daterangeCk[0]
this.queryParams.endDateCk = moment().add(this.daterangeCk[1], 'days').format('YYYY-MM-DD');
} else {
this.queryParams.startDateCk = ''
this.queryParams.endDateCk = ''
}
if (this.daterangeRk != null && this.daterangeRk.length > 0) {
this.queryParams.startDateRk = this.daterangeRk[0]
this.queryParams.endDateRk = moment().add(this.daterangeRk[1], 'days').format('YYYY-MM-DD');
} else {
this.queryParams.startDateRk = ''
this.queryParams.endDateRk = ''
}
this.loading = true
list(this.queryParams).then(response => {
this.list = response.rows
this.total = response.total
this.loading = false
})
},
//
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
//
resetQuery() {
this.queryParams.mc = null
this.queryParams.mdId = null
this.queryParams.jlzt = null
this.queryParams.jyzt = null
this.queryParams.bh = null
this.queryParams.startDateCk = null
this.queryParams.endDateCk = null
this.queryParams.startDateRk = null
this.queryParams.endDateRk = null
this.daterangeCk = []
this.daterangeRk = []
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.single = selection.length !== 1
this.multiple = !selection.length
this.selectList = selection
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss">
.ffjl {
background: #fff;
padding: 10px 10px;
}
</style>

+ 269
- 0
src/views/business/archive/formulation/comps/gyzjList.vue View File

@ -0,0 +1,269 @@
<template>
<div>
<!-- 列表 -->
<div>
<div class="gyzj" v-show="!showDetail">
<el-form :model="queryParams" ref="queryForm" class="search-area" :inline="true" label-width="88px">
<!-- 名称 -->
<el-form-item :label="$t('page.business.resource.gyzj.mc') + ':'">
<el-input v-model="queryParams.mc" clearable :placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 编号 -->
<el-form-item :label="$t('page.business.resource.gyzj.bh') + ':'">
<el-input v-model="queryParams.bh" clearable :placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 借阅状态 -->
<el-form-item :label="$t('page.business.resource.gyzj.jyzt') + ':'"
:label-width="$i18n.locale === 'zh_CN' ? '88px' : '150px'">
<el-select v-model="queryParams.jyzt" :placeholder="$t('form.placeholderSelect')" clearable>
<el-option :label="$t('page.business.resource.resource.jyzt.wjy')" :value="1" />
<el-option :label="$t('page.business.resource.resource.jyzt.djy')" :value="3" />
<el-option :label="$t('page.business.resource.resource.jyzt.jyz')" :value="5" />
</el-select>
</el-form-item>
<!-- 制剂状态 -->
<el-form-item :label="$t('page.business.resource.gyzj.zjzt') + ':'">
<el-select v-model="queryParams.zjzt" :placeholder="$t('form.placeholderSelect')" clearable>
<el-option :label="$t('page.business.resource.resource.zjzt.rk')" :value="1" />
<el-option :label="$t('page.business.resource.resource.zjzt.wrk')" :value="2" />
<el-option :label="$t('page.business.resource.resource.zjzt.yff')" :value="3" />
<el-option :label="$t('page.business.resource.resource.zjzt.ysd')" :value="5" />
<el-option :label="$t('page.business.resource.resource.zjzt.dgd')" :value="7" />
<el-option :label="$t('page.business.resource.resource.zjzt.gd')" :value="9" />
<el-option :label="$t('page.business.resource.resource.zjzt.djd')" :value="11" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('form.search') }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('form.reset') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list">
<el-table-column :label="$t('page.business.resource.gyzj.mc')" align="left" prop="mc"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.bh')" align="center" prop="bh"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.resource.gyzj.nd')" align="center">
<template slot-scope="scope">
{{ scope.row.nd }}{{ scope.row.nddw }}
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.kcl')" align="center">
<template slot-scope="scope">
{{ scope.row.kc }}{{ scope.row.kcdw }}
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.sxrq')" align="center" prop="sxrq" width="150px" />
<el-table-column :label="$t('page.business.resource.gyzj.cctj')" align="center" prop="cctj" width="140px" />
<el-table-column :label="$t('page.business.resource.gyzj.ccwz')" align="center" prop="ccwz" width="130px" />
<el-table-column :label="$t('page.business.resource.gyzj.zjzt')" align="center" width="100px" fixed="right">
<template slot-scope="scope">
<span v-if="scope.row.zjzt == 1"><span class="status-circle rk"></span>{{
$t('page.business.resource.resource.zjzt.rk') }}</span>
<span v-if="scope.row.zjzt == 2"><span class="status-circle wrk"></span>{{
$t('page.business.resource.resource.zjzt.wrk') }}</span>
<span v-if="scope.row.zjzt == 3"><span class="status-circle yff"></span>{{
$t('page.business.resource.resource.zjzt.yff') }}</span>
<span v-if="scope.row.zjzt == 5"><span class="status-circle ysd"></span>{{
$t('page.business.resource.resource.zjzt.ysd') }}</span>
<span v-if="scope.row.zjzt == 7"><span class="status-circle dgd"></span>{{
$t('page.business.resource.resource.zjzt.dgd') }}</span>
<span v-if="scope.row.zjzt == 9"><span class="status-circle gd"></span>{{
$t('page.business.resource.resource.zjzt.gd') }}</span>
<span v-if="scope.row.zjzt == 11"><span class="status-circle djd"></span>{{
$t('page.business.resource.resource.zjzt.djd') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('page.business.resource.gyzj.jyzt')" align="center" fixed="right"
:width="$i18n.locale === 'zh_CN' ? '100px' : '150px'">
<template slot-scope="scope">
<span v-if="scope.row.jyzt == 1"><span class="status-circle wjy"></span>{{
$t('page.business.resource.resource.jyzt.wjy') }}</span>
<span v-if="scope.row.jyzt == 3"><span class="status-circle djy"></span>{{
$t('page.business.resource.resource.jyzt.djy') }}</span>
<span v-if="scope.row.jyzt == 5"><span class="status-circle jyz"></span>{{
$t('page.business.resource.resource.jyzt.jyz') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('form.operate')" fixed="right" align="center"
class-name="small-padding fixed-width" width="250px">
<template slot-scope="scope">
<template>
<!-- 详情 -->
<el-button type="text" @click="handleXq(scope.row)" v-hasPermi="['business:archive:gyzj:xq']">{{
$t('page.business.resource.gyzj.detail') }}</el-button>
<!-- 同意归档 -->
<el-button type="text" v-if="scope.row.zjzt==7" @click="handleSign(scope.row, 'page.business.resource.gyzj.tygd', false, 'tygd')"
v-hasPermi="['business:archive:gyzj:tygd']">{{
$t('page.business.resource.gyzj.tygd') }}</el-button>
<!-- 拒绝归档 -->
<el-button type="text" v-if="scope.row.zjzt==7" @click="handleSign(scope.row, 'page.business.resource.gyzj.jjgd', false, 'jjgd')"
v-hasPermi="['business:archive:gyzj:jjgd']">{{
$t('page.business.resource.gyzj.jjgd') }}</el-button>
<!-- 同意解档 -->
<el-button type="text" v-if="scope.row.zjzt==11" @click="handleSign(scope.row, 'page.business.resource.gyzj.tyjd', false, 'tyjd')"
v-hasPermi="['business:archive:gyzj:tyjd']">{{
$t('page.business.resource.gyzj.tyjd') }}</el-button>
<!-- 拒绝解档 -->
<el-button type="text" v-if="scope.row.zjzt==11" @click="handleSign(scope.row, 'page.business.resource.gyzj.jjjd', false, 'jjjd')"
v-hasPermi="['business:archive:gyzj:jjjd']">{{
$t('page.business.resource.gyzj.jjjd') }}</el-button>
<!-- 同意借阅 -->
<el-button type="text" v-if="scope.row.zjzt==9&&scope.row.jyzt==3" @click="handleSign(scope.row, 'page.business.resource.gyzj.tyjy', true, 'tyjy')"
v-hasPermi="['business:archive:gyzj:tyjy']">{{
$t('page.business.resource.gyzj.tyjy') }}</el-button>
<!-- 拒绝借阅 -->
<el-button type="text" v-if="scope.row.zjzt==9&&scope.row.jyzt==3" @click="handleSign(scope.row, 'page.business.resource.gyzj.jjjy', true, 'jjjy')"
v-hasPermi="['business:archive:gyzj:jjjy']">{{
$t('page.business.resource.gyzj.jjjy') }}</el-button>
<!-- 确认归还 -->
<el-button type="text" v-if="scope.row.zjzt==9&&scope.row.jyzt==5" @click="handleSign(scope.row, 'page.business.resource.gyzj.qrgh', false, 'qrgh')"
v-hasPermi="['business:archive:gyzj:qrgh']">{{
$t('page.business.resource.gyzj.qrgh') }}</el-button>
</template>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
<!-- 详情 -->
<Xq v-show="showDetail" key="Xq" ref="Xq" @callback="closeXq" />
<!-- 签名 -->
<Sign ref="refSign" @callback="doSign" />
</div>
</div>
</template>
<script>
import { list, tygd, jjgd, tyjd, jjjd, tyjy, jjjy, qrgh } from "@/api/business/gyzj/gyzjArchive"
import Sign from "@/views/business/comps/common/sign";
import Xq from "@/views/business/resource/gyzj/comps/gyzj/Xq";
export default {
name: "GyzjDaList",
components: { Xq, Sign },
data() {
return {
loading: true,
showDetail: false,
type: '',
total: 0,
list: [],
form: {
id: null
},
queryParams: {
pageNum: 1,
pageSize: 10,
mc: null,
jyzt: null,
zjzt: null,
bh: null,
},
}
},
created() {
this.getList()
},
methods: {
handleSign(row, qmyy, showDate, type) {
this.form.id = row.id
let title = this.$t(qmyy)
this.type = type
this.$refs.refSign.show(title, title, showDate)
},
doSign(val) {
let params = _.merge({}, this.form, val)
debugger
this.$modal.loading()
if (this.type == 'tygd') {
tygd(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'jjgd') {
jjgd(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'tyjd') {
tyjd(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'jjjd') {
jjjd(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'tyjy') {
tyjy(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'jjjy') {
jjjy(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.type == 'qrgh') {
qrgh(params).then(response => {
this.handleQuery()
}).finally(() => {
this.$modal.closeLoading()
})
}
},
closeXq() {
this.showDetail = false
this.handleQuery()
this.$emit('showDetail', this.showDetail)
},
//
handleXq(row) {
this.showDetail = true
this.$emit('showDetail', this.showDetail)
this.$refs.Xq.show(row)
},
//
getList() {
this.loading = true
list(this.queryParams).then(response => {
this.list = response.rows
this.total = response.total
this.loading = false
})
},
//
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
//
resetQuery() {
this.queryParams.mc = null
this.queryParams.jyzt = null
this.queryParams.zjzt = null
this.queryParams.bh = null
this.handleQuery()
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss">
.gyzj {
background: #fff;
padding: 10px 10px;
}
</style>

+ 94
- 0
src/views/business/archive/formulation/index.vue View File

@ -0,0 +1,94 @@
<template>
<div class="gyzj-index">
<div class="content-list">
<div class="search-box" v-show="!showDetail">
<div class="search-item" :class="active === item.key ? 'active' : ''" v-for="(item, index) in tabList"
:key="index" @click="changeTab(item)">
{{ $t(item.name) }}
</div>
</div>
<div class="content-box">
<gyzjList v-if="active === 'gyzjList'" @showDetail="showDetailCallback" />
<ffjlList v-if="active === 'ffjlList'" @showDetail="showDetailCallback" />
</div>
</div>
</div>
</template>
<script>
import gyzjList from "./comps/gyzjList";
import ffjlList from "./comps/ffjlList";
export default {
name: 'Gyzj',
components: { gyzjList, ffjlList },
data() {
return {
showDetail: false,
tabList: [
{ key: 'gyzjList', name: 'page.business.resource.gyzj.gyzjda' },
{ key: 'ffjlList', name: 'page.business.resource.gyzj.lqffda' },
],
active: 'gyzjList',
}
},
created() { },
methods: {
show(row) {
this.study = row
},
changeTab(item) {
if (this.active !== item.key) {
this.active = item.key
}
},
showDetailCallback(val) {
this.showDetail = val
}
}
}
</script>
<style lang="scss" scoped>
.gyzj-index {
padding: 10px 10px;
.search-box {
background: #fff;
padding: 0;
border-radius: 3px;
margin-bottom: 10px;
display: flex;
flex-direction: row;
align-items: center;
.search-item {
padding: 10px 20px;
font-size: 14px;
cursor: pointer;
&.active {
background: #1890ff;
color: #fff;
}
&:hover {
background: #46a6ff;
color: #fff;
}
&:first-child {
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
&:last-child {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
}
}
.content-box {}
}
</style>

+ 122
- 0
src/views/business/comps/common/sign.vue View File

@ -0,0 +1,122 @@
<template>
<div>
<!-- 签名弹窗 -->
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open"
width="500px" append-to-body>
<el-form ref="signForm" :model="form" :rules="rules" :label-width="$i18n.locale === 'zh_CN'?'120px':'180px'" v-if="open">
<div class="sbzdtcma"> <input type="text"> <input type="password"> </div>
<el-row>
<el-col :span="24" v-if="showDate">
<el-form-item :label="$t('page.business.study.study.jysj')" prop="jyksrq">
<el-date-picker v-model="dateArr" clearable type="daterange" range-separator="-"
:start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')"
value-format="yyyy-MM-dd" style="width: 100%" @change="changeDate" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" v-model="form.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="form.remark" :rows="2" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="form.qmrMc" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<el-input type="password" v-model="form.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">{{ $t('form.confirm') }}</el-button>
<el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "Sign",
components: {},
data() {
return {
title: '',
open: false,
form: {
qmyy: '',
remark: '',
qmrId: '',
qmrMc: '',
qmrmm: '',
jyjsrq: '',
jyksrq: ''
},
dateArr: [],
showDate: false,
rules: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
startDate: [{
required: true,
message: ' ',
trigger: 'change'
}]
}
}
},
computed: {
},
created() {
},
methods: {
show(title, qmyy, showDate) {
this.showDate = showDate == undefined ? false : showDate
this.dateArr = []
this.title = title
this.form = {
qmyy: qmyy,
remark: '',
qmrId: this.$store.getters.id,
qmrMc: this.$store.getters.nickName,
qmrmm: '',
jyjsrq: '',
jyksrq: ''
}
this.resetForm("signForm")
this.open = true
},
cancel() {
this.open = false
},
changeDate(val) {
this.form.jyksrq = val && val.length > 0 ? val[0] : ''
this.form.jyjsrq = val && val.length > 1 ? val[1] : ''
},
save() {
this.$refs["signForm"].validate(valid => {
if (valid) {
this.$emit('callback', this.form)
this.open = false
}
})
}
}
}
</script>

+ 1
- 1
src/views/business/study/comp/sign.vue View File

@ -2,7 +2,7 @@
<div> <div>
<!-- 签名弹窗 --> <!-- 签名弹窗 -->
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="signForm" :model="form" :rules="rules" label-width="120px">
<el-form ref="signForm" :model="form" :rules="rules" label-width="120px" v-if="open">
<el-row> <el-row>
<el-col :span="24" v-if="showDate"> <el-col :span="24" v-if="showDate">
<el-form-item :label="$t('page.business.study.study.jysj')" prop="startDate"> <el-form-item :label="$t('page.business.study.study.jysj')" prop="startDate">

Loading…
Cancel
Save