Browse Source

feat: [公用] 签名弹窗改造

lkf
memorylkf 2 months ago
parent
commit
b7ad48e2b7
5 changed files with 111 additions and 133 deletions
  1. +2
    -2
      src/api/business/form/drug.js
  2. +2
    -2
      src/api/business/form/nonTrial.js
  3. +2
    -2
      src/api/business/study/study.js
  4. +64
    -122
      src/views/business/archive/trial/list.vue
  5. +41
    -5
      src/views/business/study/comp/sign.vue

+ 2
- 2
src/api/business/form/drug.js View File

@ -99,14 +99,14 @@ export function drug_doGd(data) {
} }
export function drug_doJd(data) { export function drug_doJd(data) {
return request({ return request({
url: '/system/business/drug/doGd',
url: '/system/business/drug/doJd',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function drug_doJy(data) { export function drug_doJy(data) {
return request({ return request({
url: '/system/business/drug/doGd',
url: '/system/business/drug/doJy',
method: 'post', method: 'post',
data: data data: data
}) })

+ 2
- 2
src/api/business/form/nonTrial.js View File

@ -99,14 +99,14 @@ export function nonTrial_doGd(data) {
} }
export function nonTrial_doJd(data) { export function nonTrial_doJd(data) {
return request({ return request({
url: '/system/business/nonTrial/doGd',
url: '/system/business/nonTrial/doJd',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function nonTrial_doJy(data) { export function nonTrial_doJy(data) {
return request({ return request({
url: '/system/business/nonTrial/doGd',
url: '/system/business/nonTrial/doJy',
method: 'post', method: 'post',
data: data data: data
}) })

+ 2
- 2
src/api/business/study/study.js View File

@ -100,14 +100,14 @@ export function study_doGd(data) {
} }
export function study_doJd(data) { export function study_doJd(data) {
return request({ return request({
url: '/system/business/study/doGd',
url: '/system/business/study/doJd',
method: 'post', method: 'post',
data: data data: data
}) })
} }
export function study_doJy(data) { export function study_doJy(data) {
return request({ return request({
url: '/system/business/study/doGd',
url: '/system/business/study/doJy',
method: 'post', method: 'post',
data: data data: data
}) })

+ 64
- 122
src/views/business/archive/trial/list.vue View File

@ -69,19 +69,19 @@
<el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200"> <el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 同意归档 --> <!-- 同意归档 -->
<el-button type="text" @click="doGd(scope.row,9)" v-hasPermi="['business:archive:trial:tygd']" v-if="scope.row.status===7">{{$t('page.business.study.study.edit')}}</el-button>
<el-button type="text" @click="gd(scope.row,9)" v-hasPermi="['business:archive:trial:tygd']" v-if="scope.row.status===7">{{$t('page.business.study.study.tygd')}}</el-button>
<!-- 拒绝归档 --> <!-- 拒绝归档 -->
<el-button type="text" @click="doGd(scope.row,5)" v-hasPermi="['business:archive:trial:jjgd']" v-if="scope.row.status===7">{{$t('page.business.study.study.delete')}}</el-button>
<el-button type="text" @click="gd(scope.row,5)" v-hasPermi="['business:archive:trial:jjgd']" v-if="scope.row.status===7">{{$t('page.business.study.study.jjgd')}}</el-button>
<!-- 同意解档 --> <!-- 同意解档 -->
<el-button type="text" @click="doJd(scope.row,5)" v-hasPermi="['business:archive:trial:tyjd']" v-if="scope.row.status===10">{{$t('page.business.study.study.enter')}}</el-button>
<el-button type="text" @click="jd(scope.row,5)" v-hasPermi="['business:archive:trial:tyjd']" v-if="scope.row.status===10">{{$t('page.business.study.study.tyjd')}}</el-button>
<!-- 拒绝解档 --> <!-- 拒绝解档 -->
<el-button type="text" @click="doJd(scope.row,9)" v-hasPermi="['business:archive:trial:jjjd']" v-if="scope.row.status===10">{{$t('page.business.study.study.gd')}}</el-button>
<el-button type="text" @click="jd(scope.row,9)" v-hasPermi="['business:archive:trial:jjjd']" v-if="scope.row.status===10">{{$t('page.business.study.study.jjjd')}}</el-button>
<!-- 同意借阅 --> <!-- 同意借阅 -->
<el-button type="text" @click="doJy(scope.row,10)" v-hasPermi="['business:archive:trial:tyjy']" v-if="scope.row.status===9 && scope.row.borrowStatus===5">{{$t('page.business.study.study.js')}}</el-button>
<el-button type="text" @click="jy(scope.row,10)" v-hasPermi="['business:archive:trial:tyjy']" v-if="scope.row.status===9 && scope.row.borrowStatus===5">{{$t('page.business.study.study.tyjy')}}</el-button>
<!-- 拒绝借阅 --> <!-- 拒绝借阅 -->
<el-button type="text" @click="doJy(scope.row,1)" v-hasPermi="['business:archive:trial:jjjy']" v-if="scope.row.status===9 && scope.row.borrowStatus===5">{{$t('page.business.study.study.jy')}}</el-button>
<el-button type="text" @click="jy(scope.row,1)" v-hasPermi="['business:archive:trial:jjjy']" v-if="scope.row.status===9 && scope.row.borrowStatus===5">{{$t('page.business.study.study.jjjy')}}</el-button>
<!-- 确认归还 --> <!-- 确认归还 -->
<el-button type="text" @click="gh(scope.row)" v-hasPermi="['business:archive:trial:qrgh']" v-if="scope.row.status===9 && scope.row.borrowStatus===10">{{$t('page.business.study.study.jd')}}</el-button>
<el-button type="text" @click="gh(scope.row)" v-hasPermi="['business:archive:trial:qrgh']" v-if="scope.row.status===9 && scope.row.borrowStatus===10">{{$t('page.business.study.study.qrgh')}}</el-button>
<!-- 详情 --> <!-- 详情 -->
<el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:archive:trial:xq']" >{{$t('page.business.study.study.detail')}}</el-button> <el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:archive:trial:xq']" >{{$t('page.business.study.study.detail')}}</el-button>
</template> </template>
@ -96,50 +96,15 @@
@pagination="getList" @pagination="getList"
/> />
</div> </div>
<!-- <el-dialog :close-on-click-modal="false" :title="infoDialog.title" :visible.sync="infoDialog.visible" width="600px" append-to-body>
<el-form ref="infoDialogForm" :model="infoDialog.formData" :rules="infoDialog.rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.study.name')+':'" prop="name">
<el-input v-model="infoDialog.formData.name" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.study.sn')+':'" prop="sn">
<el-input v-model="infoDialog.formData.sn" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.study.leader')+':'" prop="leader">
<el-input v-model="infoDialog.formData.leader" :placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.study.remark')+':'" prop="remark">
<el-input type="textarea" :rows="5" :placeholder="$t('form.placeholderInput')" v-model="infoDialog.formData.remark"> </el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save"> </el-button>
<el-button @click="infoDialog.visible = false"> </el-button>
</div>
</el-dialog> -->
</div> </div>
<Edit ref="edit" v-show="showType==='edit'" @cancel="showType='list'" @save="save" />
<!-- <Enter ref="enter" v-show="showType==='enter'" @cancel="showType='list'" /> -->
<Detail ref="detail" v-show="showType==='detail'" @cancel="showType='list'" /> <Detail ref="detail" v-show="showType==='detail'" @cancel="showType='list'" />
<Sign ref="signRef" @callback="doSign" /> <Sign ref="signRef" @callback="doSign" />
</div> </div>
</template> </template>
<script> <script>
import { checkPermi, checkRole } from "@/utils/permission";
import { study_archiveList,study_delete,study_gd,study_js,study_jd,study_jy} from "@/api/business/study/study";
import Edit from '@/views/business/study/comp/edit.vue'
import Enter from '@/views/business/study/comp/enter.vue'
import { study_archiveList,study_doGd,study_doJd,study_doJy,study_gh} from "@/api/business/study/study";
import Detail from '@/views/business/study/comp/detail.vue' import Detail from '@/views/business/study/comp/detail.vue'
import Sign from '@/views/business/study/comp/sign.vue' import Sign from '@/views/business/study/comp/sign.vue'
export default { export default {
@ -147,8 +112,6 @@ export default {
props:{ props:{
}, },
components:{ components:{
Edit,
Enter,
Detail, Detail,
Sign Sign
}, },
@ -159,16 +122,12 @@ export default {
data() { data() {
return { return {
userId:this.$store.getters.id, userId:this.$store.getters.id,
daterange:[],
searchForm: { searchForm: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
sn:'', sn:'',
name:'', name:'',
leaderName:'',
status:'', status:'',
startDate:'',
endDate:'',
}, },
loading: true, loading: true,
@ -185,12 +144,8 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
checkPermi,
checkRole,
getList() { getList() {
this.loading = true; this.loading = true;
this.searchForm.startDate = this.daterange && this.daterange.length > 0 ? this.daterange[0] : ''
this.searchForm.endDate = this.daterange && this.daterange.length > 1 ? this.daterange[1] : ''
study_archiveList(this.searchForm).then(response => { study_archiveList(this.searchForm).then(response => {
this.list = response.rows; this.list = response.rows;
this.total = response.total; this.total = response.total;
@ -208,65 +163,34 @@ export default {
pageSize: 10, pageSize: 10,
sn:'', sn:'',
name:'', name:'',
leaderName:'',
status:'', status:'',
startDate:'',
endDate:'',
} }
this.daterange = []
this.search() this.search()
}, },
edit(row) {
this.showType = 'edit'
this.$refs.edit.edit(row)
},
save() {
this.showType = 'list'
this.getList()
},
enter(row){
this.$tab.openPage(" ", '/study/enter/' + row.id+'/ytbd')
// this.showType = 'enter'
// this.$refs.enter.show(row)
},
detail(row){ detail(row){
this.showType = 'detail' this.showType = 'detail'
this.$refs.detail.show(row) this.$refs.detail.show(row)
}, },
del(row) {
this.operate = 'del'
this.operateRow = row
this.$refs.signRef.show(this.$t('page.business.study.study.scsy'),this.$t('page.business.study.study.scsy'))
},
doDel(signInfo) {
this.$modal.loading()
let postData = {
study:this.operateRow,
sign:signInfo
}
study_delete(postData).then(() => {
this.$refs.signRef.cancel()
this.getList()
})
.finally(() => {
this.$modal.closeLoading()
})
},
gd(row) {
gd(row,status) {
this.operate = 'gd' this.operate = 'gd'
this.operateRow = row
this.$refs.signRef.show(this.$t('page.business.study.study.sqgd'),this.$t('page.business.study.study.sqgd'))
this.operateRow = _.clone(row)
this.operateRow.status = status
this.$refs.signRef.show(
status==9?this.$t('page.business.study.study.tygd'):this.$t('page.business.study.study.jjgd'),
status==9?this.$t('page.business.study.study.tygd'):this.$t('page.business.study.study.jjgd'),
false,
null,
true,
status!=9
)
}, },
doGd(signInfo) { doGd(signInfo) {
this.$modal.loading() this.$modal.loading()
let postData = { let postData = {
study:this.operateRow,
study: this.operateRow,
sign:signInfo sign:signInfo
} }
study_gd(postData).then(() => {
study_doGd(postData).then(() => {
this.$refs.signRef.cancel() this.$refs.signRef.cancel()
this.getList() this.getList()
}) })
@ -274,19 +198,26 @@ export default {
this.$modal.closeLoading() this.$modal.closeLoading()
}) })
}, },
js(row) {
this.operate = 'js'
this.operateRow = row
this.$refs.signRef.show(this.$t('page.business.study.study.jssy'),this.$t('page.business.study.study.jssy'))
jd(row,status) {
this.operate = 'jd'
this.operateRow = _.clone(row)
this.operateRow.status = status
this.$refs.signRef.show(
status==5?this.$t('page.business.study.study.tyjd'):this.$t('page.business.study.study.jjjd'),
status==5?this.$t('page.business.study.study.tyjd'):this.$t('page.business.study.study.jjjd'),
false,
null,
true,
status!=5
)
}, },
doJs(signInfo) {
doJd(signInfo) {
this.$modal.loading() this.$modal.loading()
let postData = { let postData = {
study:this.operateRow, study:this.operateRow,
sign:signInfo sign:signInfo
} }
study_js(postData).then(() => {
study_doJd(postData).then(() => {
this.$refs.signRef.cancel() this.$refs.signRef.cancel()
this.getList() this.getList()
}) })
@ -295,18 +226,26 @@ export default {
}) })
}, },
jd(row) {
this.operate = 'jd'
this.operateRow = row
this.$refs.signRef.show(this.$t('page.business.study.study.sqjd'),this.$t('page.business.study.study.sqjd'))
jy(row,status) {
this.operate = 'jy'
this.operateRow = _.clone(row)
this.operateRow.borrowStatus = status
this.$refs.signRef.show(
status==10?this.$t('page.business.study.study.tyjy'):this.$t('page.business.study.study.jjjy'),
status==10?this.$t('page.business.study.study.tyjy'):this.$t('page.business.study.study.jjjy'),
true,
[row.borrowStartDate,row.borrowEndDate],
true,
status!=10
)
}, },
doJd(signInfo) {
doJy(signInfo) {
this.$modal.loading() this.$modal.loading()
let postData = { let postData = {
study:this.operateRow, study:this.operateRow,
sign:signInfo sign:signInfo
} }
study_jd(postData).then(() => {
study_doJy(postData).then(() => {
this.$refs.signRef.cancel() this.$refs.signRef.cancel()
this.getList() this.getList()
}) })
@ -315,18 +254,25 @@ export default {
}) })
}, },
jy(row) {
this.operate = 'jy'
gh(row) {
this.operate = 'gh'
this.operateRow = row this.operateRow = row
this.$refs.signRef.show(this.$t('page.business.study.study.sqjy'),this.$t('page.business.study.study.sqjy'),true)
this.$refs.signRef.show(
this.$t('page.business.study.study.qrgh'),
this.$t('page.business.study.study.qrgh'),
false,
null,
false,
false
)
}, },
doJy(signInfo) {
doGh(signInfo) {
this.$modal.loading() this.$modal.loading()
let postData = { let postData = {
study:this.operateRow, study:this.operateRow,
sign:signInfo sign:signInfo
} }
study_jy(postData).then(() => {
study_gh(postData).then(() => {
this.$refs.signRef.cancel() this.$refs.signRef.cancel()
this.getList() this.getList()
}) })
@ -335,23 +281,19 @@ export default {
}) })
}, },
doSign(val){ doSign(val){
if(this.operate==='del'){
this.doDel(val)
}
if(this.operate==='gd'){ if(this.operate==='gd'){
this.doGd(val) this.doGd(val)
} }
if(this.operate==='js'){
this.doJs(val)
}
if(this.operate==='jd'){ if(this.operate==='jd'){
this.doJd(val) this.doJd(val)
} }
if(this.operate==='jy'){ if(this.operate==='jy'){
this.doJy(val) this.doJy(val)
} }
if(this.operate==='gh'){
this.doGh(val)
}
}, },
} }
}; };

+ 41
- 5
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" v-if="open">
<el-form ref="signForm" :model="form" :rules="rules" label-width="120px">
<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">
@ -18,7 +18,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-form-item :label="isReson?$t('form.reason'):$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="form.remark" :rows="2" maxlength="500" <el-input type="textarea" v-model="form.remark" :rows="2" maxlength="500"
:placeholder="$t('form.placeholderInput')"> :placeholder="$t('form.placeholderInput')">
</el-input> </el-input>
@ -89,7 +89,9 @@ export default {
message: ' ', message: ' ',
trigger: 'change' trigger: 'change'
}] }]
}
},
isReson:false
} }
}, },
computed: { computed: {
@ -97,9 +99,9 @@ export default {
created() { created() {
}, },
methods: { methods: {
show(title,qmyy,showDate) {
show(title,qmyy,showDate,selectedDate,isReson,reasonRequired) {
this.showDate = showDate==undefined?false:showDate this.showDate = showDate==undefined?false:showDate
this.dateArr = []
this.dateArr = selectedDate || []
this.title = title this.title = title
this.form = { this.form = {
qmyy:qmyy, qmyy:qmyy,
@ -113,6 +115,40 @@ export default {
} }
this.resetForm("signForm") this.resetForm("signForm")
this.open = true this.open = true
this.isReson = isReson || false
if(reasonRequired){
this.rules ={
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
startDate: [{
required: true,
message: ' ',
trigger: 'change'
}],
remark: [{
required: true,
message: ' ',
trigger: 'blur'
}]
}
}else{
this.rules ={
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
startDate: [{
required: true,
message: ' ',
trigger: 'change'
}]
}
}
}, },
cancel() { cancel() {
this.open = false this.open = false

Loading…
Cancel
Save