Browse Source

feat:[资源库管理][麻醉精药管理]新增解锁,归档

luojie
15881625488@163.com 3 weeks ago
parent
commit
f6e1805d4a
8 changed files with 395 additions and 18 deletions
  1. +40
    -0
      src/api/business/mjy/mjy.js
  2. +5
    -2
      src/lang/en.js
  3. +4
    -1
      src/lang/zh.js
  4. +160
    -0
      src/views/business/resource/mjy/comps/Gd.vue
  5. +123
    -0
      src/views/business/resource/mjy/comps/Js.vue
  6. +33
    -2
      src/views/business/resource/mjy/comps/Sd.vue
  7. +29
    -12
      src/views/business/resource/mjy/list.vue
  8. +1
    -1
      src/views/business/resource/zcg/comps/Ysgh.vue

+ 40
- 0
src/api/business/mjy/mjy.js View File

@ -35,4 +35,44 @@ export function mjy_sdBatch(data) {
method: 'post',
data: data
})
}
// 解锁
export function mjy_js(data) {
return request({
url: '/system/business/mjy/js',
method: 'post',
data: data
})
}
//批量解锁
export function mjy_jsBatch(data) {
return request({
url: '/system/business/mjy/jsBatch',
method: 'post',
data: data
})
}
// 归档
export function mjy_gd(data) {
return request({
url: '/system/business/mjy/gd',
method: 'post',
data: data
})
}
//批量归档
export function mjy_gdBatch(data) {
return request({
url: '/system/business/mjy/gdBatch',
method: 'post',
data: data
})
}

+ 5
- 2
src/lang/en.js View File

@ -26,6 +26,8 @@ export default {
qmyy:'签名意义',
lock:'lock',
unlock:'unlock',
detail:'detail',
gd:'归档',
},
menu: {
PersonalCenter: 'Personal Center',
@ -215,6 +217,8 @@ export default {
ffrmm:'发放人密码',
},
mjy:{
sdts:'请确认是否锁定以下麻精药',
gdts:'请确认是否归档以下麻精药',
mc:'名称',
bh:'编号',
jyzt:'借阅状态',
@ -240,8 +244,7 @@ export default {
xgkc:'修改库存',
shxgkc:'审核修改库存',
shbj:'审核编辑',
sd:'锁定',
js:'解锁',
gd:'归档',
jd:'解档',
jy:'借阅',

+ 4
- 1
src/lang/zh.js View File

@ -26,6 +26,8 @@ export default {
remark:'备注',
lock:'锁定',
unlock:'解锁',
detail:'详情',
gd:'归档',
},
menu: {
PersonalCenter: '个人中心',
@ -215,6 +217,8 @@ export default {
ffrmm:'发放人密码',
},
mjy:{
sdts:'请确认是否锁定以下麻精药',
gdts:'请确认是否归档以下麻精药',
mc:'名称',
bh:'编号',
jyzt:'借阅状态',
@ -245,7 +249,6 @@ export default {
jd:'解档',
jy:'借阅',
gh:'归还',
xq:'详情',
}
}
}

+ 160
- 0
src/views/business/resource/mjy/comps/Gd.vue View File

@ -0,0 +1,160 @@
G<template>
<div class="app-container">
<!-- 归档弹窗 -->
<el-dialog :title="$t('form.gd')" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<template v-if="isBatch">
<el-alert :title="$t('page.business.zykgl.mjy.gdts') " type="error" :closable="false">
</el-alert>
<el-row style="margin:10px 0px;">
<el-col :span="24">
<el-table :data="selectList" border>
<el-table-column :label="$t('page.business.zykgl.mjy.mc')" align="left" prop="mc"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.zykgl.mjy.bh')" align="center" prop="bh"
:show-overflow-tooltip="true" />
</el-table>
</el-col>
</el-row>
</template>
<template v-else>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.mc')" prop="mc">
<el-input type="text" v-model="form.mc" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.bh')" prop="glyj">
<el-input type="text" v-model="form.bh" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</template>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="form.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="sdrmm">
<el-input type="text" v-model="form.sdrmm" 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>
import { mjy_gd, mjy_gdBatch } from "@/api/business/mjy/mjy"
import { mapGetters } from 'vuex'
export default {
name: "MjySd",
data() {
return {
isBatch: false,
ids: [],
selectList: [],
open: false,
form: {},
rules: {
sdrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
},
methods: {
showBatch(val) {
this.reset()
this.isBatch = true
this.form.ids = val.map(item => item.id)
this.selectList = val
this.open = true
},
cancel() {
this.open = false
},
reset() {
this.form = {
id: null,
ids: null,
mc: null,
bh: null,
qmyy: '申请归档',
sdrmm: null
}
this.resetForm("form")
},
show(row) {
this.reset()
this.isBatch = false
this.form.ids = []
this.selectList = []
this.form.id = row.id
this.form.mc = row.mc
this.form.bh = row.bh
this.open = true
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.isBatch) {
mjy_gdBatch(this.form).then(response => {
this.open = false
this.$emit('callback')
})
} else {
mjy_gd(this.form).then(response => {
this.open = false
this.$emit('callback')
})
}
}
})
}
}
}
</script>

+ 123
- 0
src/views/business/resource/mjy/comps/Js.vue View File

@ -0,0 +1,123 @@
G<template>
<div class="app-container">
<!-- 解锁弹窗 -->
<el-dialog :title="$t('form.unlock')" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.mc')" prop="mc">
<el-input type="text" v-model="form.mc" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.bh')" prop="glyj">
<el-input type="text" v-model="form.bh" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="form.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<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-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="sdrmm">
<el-input type="text" v-model="form.sdrmm" 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>
import { mjy_js } from "@/api/business/mjy/mjy"
import { mapGetters } from 'vuex'
export default {
name: "MjyJs",
data() {
return {
open: false,
form: {},
rules: {
sdrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
}
}
},
computed: {
...mapGetters([
'nickName'
]),
},
created() {
},
methods: {
cancel() {
this.open = false
},
reset() {
this.form = {
id: null,
ids: null,
mc: null,
bh: null,
qmyy: '解锁麻精药',
sdrmm: null
}
this.resetForm("form")
},
show(row) {
this.reset()
this.form.id = row.id
this.form.mc = row.mc
this.form.bh = row.bh
this.open = true
},
save() {
this.$refs["form"].validate(valid => {
if (valid) {
mjy_js(this.form).then(response => {
this.open = false
this.$emit('callback')
})
}
})
}
}
}
</script>

+ 33
- 2
src/views/business/resource/mjy/comps/Sd.vue View File

@ -1,9 +1,40 @@
G<template>
<div class="app-container">
<!-- 锁定弹窗 -->
<el-dialog :title="$t('form.lock')" :visible.sync="open" width="500px" append-to-body
:close-on-click-modal="false">
<el-dialog :title="$t('form.lock')" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<template v-if="isBatch">
<el-alert :title="$t('page.business.zykgl.mjy.sdts') " type="error" :closable="false">
</el-alert>
<el-row style="margin:10px 0px;">
<el-col :span="24">
<el-table :data="selectList" border>
<el-table-column :label="$t('page.business.zykgl.mjy.mc')" align="left" prop="mc"
:show-overflow-tooltip="true" />
<el-table-column :label="$t('page.business.zykgl.mjy.bh')" align="center" prop="bh"
:show-overflow-tooltip="true" />
</el-table>
</el-col>
</el-row>
</template>
<template v-else>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.mc')" prop="mc">
<el-input type="text" v-model="form.mc" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.zykgl.mjy.bh')" prop="glyj">
<el-input type="text" v-model="form.bh" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</template>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">

+ 29
- 12
src/views/business/resource/mjy/list.vue View File

@ -1,15 +1,15 @@
<template>
<div class="app-container mjy">
<el-form :model="queryParams" ref="queryForm" class="search-area" size="small" :inline="true" label-width="88px">
<!-- 名称 -->
<!-- 名称 -->
<el-form-item :label="$t('page.business.zykgl.mjy.mc') + ':'">
<el-input v-model="queryParams.mc" clearable @change="handleQuery" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 编号 -->
<!-- 编号 -->
<el-form-item :label="$t('page.business.zykgl.mjy.bh') + ':'">
<el-input v-model="queryParams.bh" clearable @change="handleQuery" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
<!-- 借阅状态 -->
<!-- 借阅状态 -->
<el-form-item :label="$t('page.business.zykgl.mjy.jyzt') + ':'">
<el-select v-model="queryParams.jyzt" :placeholder="$t('form.placeholderSelect')" clearable
@change="handleQuery">
@ -18,7 +18,7 @@
<el-option key="5" :label="$t('page.business.zykgl.jyzt.jyz')" value="5" />
</el-select>
</el-form-item>
<!-- 制剂状态 -->
<!-- 制剂状态 -->
<el-form-item :label="$t('page.business.zykgl.mjy.zjzt') + ':'">
<el-select v-model="queryParams.zjzt" :placeholder="$t('form.placeholderSelect')" clearable
@change="handleQuery">
@ -30,7 +30,7 @@
<el-option key="11" :label="$t('page.business.zykgl.zjzt.djd')" value="11" />
</el-select>
</el-form-item>
<!-- 失效日期 -->
<!-- 失效日期 -->
<el-form-item :label="$t('page.business.zykgl.mjy.sxrq') + ':'">
<el-date-picker v-model="daterange" class="chat-histogram-daterange" type="daterange" range-separator="-"
:start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')" value-format="yyyy-MM-dd"
@ -122,7 +122,7 @@
<template slot-scope="scope">
<!-- 详情 -->
<el-button size="mini" type="text" @click="handleffys(scope.row)"
v-hasPermi="['business:resource:mjy:list']">{{ $t('page.business.zykgl.mjy.xq') }}</el-button>
v-hasPermi="['business:resource:mjy:list']">{{ $t('form.detail') }}</el-button>
<!-- 发放 -->
<el-button size="mini" type="text" @click="handleffys(scope.row)" v-hasPermi="['business:resource:mjy:ff']">{{
$t('page.business.zykgl.mjy.ff') }}</el-button>
@ -156,10 +156,10 @@
<el-button size="mini" type="text" @click="handleSd(scope.row)" v-hasPermi="['business:resource:mjy:sd']">{{
$t('form.lock') }}</el-button>
<!-- 解锁 -->
<el-button size="mini" type="text" @click="handleghys(scope.row)" v-hasPermi="['business:resource:mjy:js']">{{
<el-button size="mini" type="text" @click="handleJs(scope.row)" v-hasPermi="['business:resource:mjy:js']">{{
$t('form.unlock') }}</el-button>
<!-- 归档 -->
<el-button size="mini" type="text" @click="handleghys(scope.row)" v-hasPermi="['business:resource:mjy:gd']">{{
<el-button size="mini" type="text" @click="handleGd(scope.row)" v-hasPermi="['business:resource:mjy:gd']">{{
$t('page.business.zykgl.mjy.gd') }}</el-button>
<!-- 解档 -->
<el-button size="mini" type="text" @click="handleghys(scope.row)" v-hasPermi="['business:resource:mjy:jd']">{{
@ -179,16 +179,22 @@
<!-- 锁定 -->
<Sd ref="Sd" @callback="handleQuery" />
<!-- 解锁 -->
<Js ref="Js" @callback="handleQuery" />
<!-- 归档 -->
<Gd ref="Gd" @callback="handleQuery" />
</div>
</template>
<script>
import { mjy_list } from "@/api/business/mjy/mjy"
import Sd from "./comps/Sd";
import Js from "./comps/Js";
import Gd from "./comps/Gd";
export default {
name: "Mjy",
components: { Sd },
components: { Sd, Js, Gd },
data() {
return {
daterange: [],
@ -216,11 +222,22 @@ export default {
this.getList()
},
methods: {
handlePlsd(){
debugger
handlePljs() {
this.$refs.Js.showBatch(this.selectList)
},
handleJs(row) {
this.$refs.Js.show(row)
},
handlePlgd() {
this.$refs.Gd.showBatch(this.selectList)
},
handleGd(row) {
this.$refs.Gd.show(row)
},
handlePlsd() {
this.$refs.Sd.showBatch(this.selectList)
},
handleSd(row){
handleSd(row) {
this.$refs.Sd.show(row)
},
getList() {

+ 1
- 1
src/views/business/resource/zcg/comps/Ysgh.vue View File

@ -5,7 +5,7 @@ G