| @ -0,0 +1,84 @@ | |||||
| import request from '@/utils/request' | |||||
| export function drug_list(query) { | |||||
| return request({ | |||||
| url: '/system/business/drug/list', | |||||
| method: 'get', | |||||
| params: query | |||||
| }) | |||||
| } | |||||
| export function drug_info(query) { | |||||
| return request({ | |||||
| url: '/system/business/drug/info', | |||||
| method: 'get', | |||||
| params: query | |||||
| }) | |||||
| } | |||||
| export function drug_save(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/save', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_delete(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/delete', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_jcgjList(query) { | |||||
| return request({ | |||||
| url: '/system/business/drug/jcgjList', | |||||
| method: 'get', | |||||
| params: query | |||||
| }) | |||||
| } | |||||
| export function drug_gd(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/gd', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_checkSd(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/checkSd', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_sd(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/sd', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_js(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/js', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_jd(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/jd', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| export function drug_jy(data) { | |||||
| return request({ | |||||
| url: '/system/business/drug/jy', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| @ -0,0 +1,72 @@ | |||||
| export default { | |||||
| name: 'Name', | |||||
| sn: 'ID', | |||||
| dateRange: 'Date Range', | |||||
| status: 'Status', | |||||
| startDate: 'Start Date', | |||||
| endDate: 'End Date', | |||||
| leader: 'Director', | |||||
| dept: 'Department', | |||||
| add: 'Create', | |||||
| sort: 'Num', | |||||
| borrowStatus: 'Check-out Status', | |||||
| formCount: 'Records', | |||||
| formFinishCount: 'Completed Records', | |||||
| createDate: 'Creation Date', | |||||
| remark: 'Description', | |||||
| statusCg: 'Draft', | |||||
| statusSyz: 'On-going', | |||||
| statusYsd: 'Locked', | |||||
| statusDgd: 'Pending Archiving', | |||||
| statusGd: 'Archived', | |||||
| statusDjd: 'Pending De-archiving', | |||||
| borrowStatusWjy: 'Not Checked-out', | |||||
| borrowStatusJyz: 'Checked-out', | |||||
| borrowStatusDjy: 'Pending Check-out', | |||||
| edit: 'Edit', | |||||
| enter: 'Enter', | |||||
| delete: 'Remove', | |||||
| detail: 'Detail', | |||||
| gd: 'Archive', | |||||
| jy: 'Check out', | |||||
| jd: 'De-archive', | |||||
| js: 'Unlock', | |||||
| create: 'Create', | |||||
| inputName: 'Input Name', | |||||
| inputSn: 'Input ID', | |||||
| inputLeader: 'Select Director', | |||||
| cancel: 'Cancel', | |||||
| save: 'Save', | |||||
| submit: 'Submit', | |||||
| jbxx: 'Information', | |||||
| bdsl: 'Total Records', | |||||
| syfzr: 'Director', | |||||
| jcgj: 'Track Record', | |||||
| rybg: 'Change of Person', | |||||
| xgsy: 'Change of Information', | |||||
| sdsy: 'Lock Record', | |||||
| jssy: 'Unlock Record', | |||||
| sqjy: 'Apply for Check-out', | |||||
| sqgd: 'Apply for Archiving', | |||||
| sqjd: 'Apply for De-archiving', | |||||
| jjjd: 'Reject De-archiving', | |||||
| tyjd: 'Approve De-archiving', | |||||
| jjgd: 'Reject Archiving', | |||||
| tygd: 'Approve Archiving', | |||||
| dqzdgh: 'Check-out End on Time', | |||||
| qrgh: 'Check-out End Confirmation', | |||||
| qb: 'All', | |||||
| lc: 'Milestone', | |||||
| bj: 'Change', | |||||
| ry: 'User', | |||||
| scsy: 'Remove', | |||||
| jysj: 'Checkout Period' | |||||
| } | |||||
| @ -0,0 +1,73 @@ | |||||
| export default { | |||||
| name: '名称', | |||||
| sn: '编号', | |||||
| dateRange: '时间范围', | |||||
| status: '状态', | |||||
| startDate: '开始时间', | |||||
| endDate: '结束时间', | |||||
| leader: '负责人', | |||||
| dept: '所属部门/学科', | |||||
| add: '新增', | |||||
| sort: '序号', | |||||
| borrowStatus: '借阅状态', | |||||
| formCount: '表单数', | |||||
| formFinishCount: '完成表单数', | |||||
| createDate: '创建时间', | |||||
| remark: '简述', | |||||
| statusCg: '草稿', | |||||
| statusSyz: '试验中', | |||||
| statusYsd: '已锁定', | |||||
| statusDgd: '待归档', | |||||
| statusGd: '归档', | |||||
| statusDjd: '待解档', | |||||
| borrowStatusWjy: '未借阅', | |||||
| borrowStatusJyz: '借阅中', | |||||
| borrowStatusDjy: '待借阅', | |||||
| edit: '编辑', | |||||
| enter: '进入', | |||||
| delete: '删除', | |||||
| detail: '详情', | |||||
| gd: '归档', | |||||
| jy: '借阅', | |||||
| jd: '解档', | |||||
| js: '解锁', | |||||
| create: '创建', | |||||
| inputName: '请输入名称', | |||||
| inputSn: '请输入编号', | |||||
| inputLeader: '请选择负责人', | |||||
| cancel: '取消', | |||||
| save: '保存', | |||||
| submit: '提交', | |||||
| jbxx: '基本信息', | |||||
| bdsl: '表单数量', | |||||
| syfzr: '负责人', | |||||
| jcgj: '稽查轨迹', | |||||
| rybg: '人员变更', | |||||
| xgsy: '修改麻精药文件夹', | |||||
| sdsy: '锁定麻精药文件夹', | |||||
| jssy: '解锁麻精药文件夹', | |||||
| sqjy: '申请借阅', | |||||
| sqgd: '申请归档', | |||||
| sqjd: '申请解档', | |||||
| jjjd: '拒绝解档', | |||||
| tyjd: '同意解档', | |||||
| jjgd: '拒绝归档', | |||||
| tygd: '同意归档', | |||||
| dqzdgh: '到期自动归还', | |||||
| qrgh: '确认归还', | |||||
| qb: '全部', | |||||
| lc: '流程', | |||||
| bj: '编辑', | |||||
| ry: '人员', | |||||
| xg: '修改', | |||||
| scsy: '删除麻精药文件夹', | |||||
| jysj: '借阅时间' | |||||
| } | |||||
| @ -0,0 +1,152 @@ | |||||
| G<template> | |||||
| <!-- 详情 --> | |||||
| <div v-show="open"> | |||||
| <div class="detail-container"> | |||||
| <div class="detail-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title"></div> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| {{$t('page.business.study.drug.detail')}} | |||||
| </div> | |||||
| </div> | |||||
| <!-- <div class="detail-title"><img src="@/assets/images/detail-title.png" >{{ $t('page.business.study.drug.mjyxq') }}<img src="@/assets/images/detail-title.png" /></div> --> | |||||
| <div class="detail-content"> | |||||
| <div class="content-left"> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.drug.jbxx') }}</div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <div class="left"> | |||||
| <div class="left-title">{{ $t('page.business.study.drug.name') }}</div> | |||||
| <el-input type="text" :value="form.name" maxlength="50" disabled /> | |||||
| </div> | |||||
| <div class="right"> | |||||
| <div class="right-title">{{ $t('page.business.study.drug.sn') }}</div> | |||||
| <el-input type="text" :value="form.sn" maxlength="50" disabled /> | |||||
| </div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <div class="left"> | |||||
| <div class="left-title">{{ $t('page.business.study.drug.bdsl') }}</div> | |||||
| <el-input type="text" :value="form.formCount" maxlength="50" disabled /> | |||||
| </div> | |||||
| <div class="right"> | |||||
| <div class="right-title">{{ $t('page.business.study.drug.syfzr') }}</div> | |||||
| <el-input type="text" :value="form.leaderName" maxlength="50" disabled /> | |||||
| </div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <div class="left"> | |||||
| <div class="left-title">{{ $t('page.business.study.drug.createDate') }}</div> | |||||
| <el-input type="text" :value="form.createTime" maxlength="50" disabled /> | |||||
| </div> | |||||
| <div class="right"> | |||||
| <div class="right-title">{{ $t('page.business.study.drug.status') }}</div> | |||||
| <el-select v-model="form.status" disabled style="width: 100%;"> | |||||
| <el-option :label="$t('page.business.study.drug.statusCg')" :value="1" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusSyz')" :value="3" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusYsd')" :value="5" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusDgd')" :value="7" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusGd')" :value="9" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusDjd')" :value="10" /> | |||||
| </el-select> | |||||
| </div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <div class="left"> | |||||
| <div class="left-title">{{ $t('page.business.study.drug.borrowStatus') }}</div> | |||||
| <el-select v-model="form.borrowStatus" disabled style="width: 100%;"> | |||||
| <el-option :label="$t('page.business.study.drug.borrowStatusWjy')" :value="1" /> | |||||
| <el-option :label="$t('page.business.study.drug.borrowStatusJyz')" :value="5" /> | |||||
| <el-option :label="$t('page.business.study.drug.borrowStatusDjy')" :value="10" /> | |||||
| </el-select> | |||||
| </div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <div class="left" style="width:100%;margin-right:0"> | |||||
| <div class="left-title">{{ $t('page.business.study.drug.remark') }}</div> | |||||
| <el-input type="textarea" :rows="5" v-model="form.remark" maxlength="500" show-word-limit disabled> </el-input> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <div class="content-right"> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.drug.jcgj') }}</div> | |||||
| </div> | |||||
| <jcgjList ref="jcgjList" :showRy="true" @handleQuery="jcgjListHandleQuery" /> | |||||
| <pagination | |||||
| v-show="jcgjTotal>0" | |||||
| :total="jcgjTotal" | |||||
| small layout="prev, pager, next" | |||||
| :page.sync="queryJcgjParams.pageNum" | |||||
| :limit.sync="queryJcgjParams.pageSize" | |||||
| @pagination="getJjcgjList" | |||||
| /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { drug_info, drug_jcgjList } from "@/api/business/form/drug" | |||||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||||
| export default { | |||||
| name: "StudyDetail", | |||||
| components: { JcgjList }, | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| open: false, | |||||
| jcgjTotal: 0, | |||||
| jcgjList: [], | |||||
| queryJcgjParams: { | |||||
| pageNum: 1, | |||||
| studyId: null, | |||||
| pageSize: 10, | |||||
| } | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| jcgjListHandleQuery(val) { | |||||
| this.queryJcgjParams.pageNum =1 | |||||
| drug_jcgjList(_.merge({}, this.queryJcgjParams, val)).then(response => { | |||||
| this.jcgjList = response.rows | |||||
| this.jcgjTotal = response.total | |||||
| this.$refs.jcgjList.init(this.jcgjList) | |||||
| }) | |||||
| }, | |||||
| getJjcgjList() { | |||||
| drug_jcgjList(this.queryJcgjParams).then(response => { | |||||
| this.jcgjList = response.rows | |||||
| this.jcgjTotal = response.total | |||||
| this.$refs.jcgjList.init(this.jcgjList) | |||||
| }).finally(()=>{ | |||||
| }) | |||||
| }, | |||||
| cancel() { | |||||
| this.$emit('cancel') | |||||
| }, | |||||
| show(row) { | |||||
| this.$modal.loading() | |||||
| this.queryJcgjParams.studyId = row.id | |||||
| drug_info({ id: row.id }).then(response => { | |||||
| this.form = response.data | |||||
| this.open = true | |||||
| }).finally(()=>{ | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| this.getJjcgjList() | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,179 @@ | |||||
| <template> | |||||
| <div class="content-edit"> | |||||
| <div class="edit-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title">{{$t('page.business.study.drug.create')}}</div> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| <el-button @click="cancel()">{{$t('page.business.study.drug.cancel')}}</el-button> | |||||
| <el-button type="primary" @click="save(1)" plain v-if="!infoDialog.formData.status || infoDialog.formData.status===1">{{$t('page.business.study.drug.save')}}</el-button> | |||||
| <el-button type="primary" @click="save(3)">{{$t('page.business.study.drug.submit')}}</el-button> | |||||
| </div> | |||||
| </div> | |||||
| <div class="edit-content"> | |||||
| <el-form ref="infoDialogForm" :model="infoDialog.formData" :rules="infoDialog.rules" label-width="150px" class="edit-form"> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.drug.name')+':'" prop="name"> | |||||
| <el-input v-model="infoDialog.formData.name" :placeholder="$t('form.placeholderInput')" maxlength="100" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.drug.sn')+':'" prop="sn"> | |||||
| <el-input v-model="infoDialog.formData.sn" :placeholder="$t('form.placeholderInput')" maxlength="100" :disabled="this.infoDialog.formData.id!=''" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.drug.leader')+':'" prop="leader"> | |||||
| <SelectDeptUser @change="changeLeader" v-model="infoDialog.formData.leader" :name="infoDialog.formData.leaderName" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.drug.remark')+':'" prop="remark"> | |||||
| <el-input type="textarea" :rows="5" :placeholder="$t('form.placeholderInput')" v-model="infoDialog.formData.remark" maxlength="500" show-word-limit> </el-input> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| </el-form> | |||||
| </div> | |||||
| <Sign ref="editSignRef" @callback="doSign" /> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { drug_info,drug_save} from "@/api/business/form/drug"; | |||||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser.vue'; | |||||
| import Sign from './sign.vue' | |||||
| const EmptyDialogData = { | |||||
| id:'', | |||||
| name:'', | |||||
| sn:'', | |||||
| leader:'', | |||||
| leaderName:'', | |||||
| reamrk:'', | |||||
| } | |||||
| export default { | |||||
| name: "StudyEdit", | |||||
| props:{ | |||||
| }, | |||||
| components:{ | |||||
| SelectDeptUser, | |||||
| Sign | |||||
| }, | |||||
| computed: { | |||||
| }, | |||||
| filters:{ | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| infoDialog:{ | |||||
| visible:false, | |||||
| formData:{}, | |||||
| rules:{ | |||||
| name: [ | |||||
| { required: true, message: this.$t('page.business.study.drug.inputName'), trigger: "blur" } | |||||
| ], | |||||
| sn: [ | |||||
| { required: true, message: this.$t('page.business.study.drug.inputSn'), trigger: "blur" } | |||||
| ], | |||||
| leader: [ | |||||
| { required: true, message: this.$t('page.business.study.drug.inputLeader'), trigger: "change" } | |||||
| ], | |||||
| } | |||||
| }, | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| changeLeader(val){ | |||||
| this.infoDialog.formData.leader = val.id | |||||
| this.infoDialog.formData.leaderName = val.name | |||||
| this.$refs.infoDialogForm.clearValidate('leader') | |||||
| }, | |||||
| edit(row) { | |||||
| this.$refs['infoDialogForm'] && this.$refs['infoDialogForm'].resetFields() | |||||
| this.infoDialog.formData = _.merge({}, EmptyDialogData,{leader:this.$store.getters.id,leaderName:this.$store.getters.nickName}) | |||||
| if(row && row.id){ | |||||
| this.$modal.loading() | |||||
| drug_info({id:row.id}).then(({data}) => { | |||||
| this.infoDialog.formData = data | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }else{ | |||||
| } | |||||
| }, | |||||
| cancel(){ | |||||
| this.$emit('cancel') | |||||
| }, | |||||
| save(status) { | |||||
| this.$refs['infoDialogForm'].validate(valid => { | |||||
| if (valid) { | |||||
| this.infoDialog.formData.status = status | |||||
| if(status === 3){ | |||||
| this.$refs.editSignRef.show(this.$t('page.business.study.drug.submit'),this.$t('page.business.study.drug.create')) | |||||
| }else{ | |||||
| this.doSave({}) | |||||
| } | |||||
| } | |||||
| }) | |||||
| }, | |||||
| doSign(val){ | |||||
| this.doSave(val) | |||||
| }, | |||||
| doSave(sign) { | |||||
| this.$modal.loading() | |||||
| drug_save({ | |||||
| study:this.infoDialog.formData, | |||||
| sign:sign | |||||
| }).then(() => { | |||||
| this.$emit('save') | |||||
| this.$refs.editSignRef.cancel() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="scss"> | |||||
| .content-edit{ | |||||
| background: #f5f5f5; | |||||
| padding: 0; | |||||
| .edit-top{ | |||||
| background: #fff; | |||||
| padding: 10px 20px; | |||||
| margin-bottom: 10px; | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| .left-top{ | |||||
| flex-shrink: 0; | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| align-items: center; | |||||
| img{ | |||||
| height: 16px; | |||||
| margin-right: 20px; | |||||
| cursor: pointer; | |||||
| } | |||||
| .right-top{ | |||||
| } | |||||
| } | |||||
| } | |||||
| .edit-content{ | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| min-height: 500px; | |||||
| .edit-form{ | |||||
| width: 800px; | |||||
| margin: 0 auto; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,103 @@ | |||||
| <template> | |||||
| <div class="study-enter"> | |||||
| <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)"> | |||||
| {{ item.name }} | |||||
| </div> | |||||
| </div> | |||||
| <div class="content-box"> | |||||
| <ytbd v-if="active === 'ytbd'" :study="study" @showDetail="showDetailCallback" /> | |||||
| <tbbd v-if="active === 'tbbd'" :study="study" @showDetail="showDetailCallback"/> | |||||
| <sqbd v-if="active === 'sqbd'" :study="study" @showDetail="showDetailCallback"/> | |||||
| <wzlb v-if="active === 'wzlb'" :study="study" @showDetail="showDetailCallback"/> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import ytbd from './ytbd.vue' | |||||
| import tbbd from './tbbd.vue' | |||||
| import sqbd from './sqbd.vue' | |||||
| import wzlb from './wzlb.vue' | |||||
| export default { | |||||
| name: 'StudyEnter', | |||||
| props: {}, | |||||
| components: { ytbd, tbbd ,sqbd,wzlb}, | |||||
| computed: {}, | |||||
| filters: {}, | |||||
| data() { | |||||
| return { | |||||
| showDetail: false, | |||||
| tabList: [ | |||||
| { key: 'ytbd', name: this.$t('page.business.study.studyEnter.ytbdlb') }, | |||||
| { key: 'tbbd', name: this.$t('page.business.study.studyEnter.tbbdlb') }, | |||||
| { key: 'sqbd', name: this.$t('page.business.study.studyEnter.sqbdlb') }, | |||||
| { key: 'wzlb', name: this.$t('page.business.study.studyEnter.wzlb') }, | |||||
| ], | |||||
| active: 'ytbd', | |||||
| study: {}, | |||||
| } | |||||
| }, | |||||
| created() { }, | |||||
| methods: { | |||||
| show(row) { | |||||
| this.study = row | |||||
| }, | |||||
| showDetailCallback(val) { | |||||
| this.showDetail = val | |||||
| }, | |||||
| changeTab(item) { | |||||
| if (this.active !== item.key) { | |||||
| this.active = item.key | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-enter { | |||||
| .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> | |||||
| @ -0,0 +1,119 @@ | |||||
| G<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="120px"> | |||||
| <el-row> | |||||
| <el-col :span="24" v-if="showDate"> | |||||
| <el-form-item :label="$t('page.business.study.nonTrial.jysj')" prop="startDate"> | |||||
| <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')" autocomplete="off" auto-complete="new-password" /> | |||||
| </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:'', | |||||
| startDate:'', | |||||
| endDate:'' | |||||
| }, | |||||
| 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:'', | |||||
| startDate:'', | |||||
| endDate:'' | |||||
| } | |||||
| this.resetForm("signForm") | |||||
| this.open = true | |||||
| }, | |||||
| cancel() { | |||||
| this.open = false | |||||
| }, | |||||
| changeDate(val){ | |||||
| this.form.startDate = val && val.length>0?val[0]:'' | |||||
| this.form.endDate = val && val.length>1?val[1]:'' | |||||
| }, | |||||
| save() { | |||||
| this.$refs["signForm"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$emit('callback',this.form) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,69 @@ | |||||
| <template> | |||||
| <div class="study-tbbd"> | |||||
| <div class="tbbd-right"> | |||||
| <sqbdList :study="studyInfo" @showDetail="showDetailCallback"/> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import sqbdList from './sqbdList.vue' | |||||
| export default { | |||||
| name: 'StudySqbd', | |||||
| props: { | |||||
| study:{ | |||||
| type:Object, | |||||
| default:()=>{ | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| study: { | |||||
| immediate: true, | |||||
| handler(v) { | |||||
| this.studyInfo = { | |||||
| studyId:v.id, | |||||
| studyLeader:v.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| }, | |||||
| components: {sqbdList}, | |||||
| computed: {}, | |||||
| filters: {}, | |||||
| data() { | |||||
| return { | |||||
| studyInfo:{ | |||||
| studyId:this.study.id, | |||||
| studyLeader:this.study.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| created() {}, | |||||
| methods: { | |||||
| showDetailCallback(val){ | |||||
| this.$emit('showDetail',val) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-tbbd { | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| .tbbd-left { | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| margin-right: 10px; | |||||
| flex-shrink: 0; | |||||
| width: 350px; | |||||
| } | |||||
| .tbbd-right{ | |||||
| flex-grow: 1; | |||||
| overflow: hidden; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,251 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <div class="edit-container"> | |||||
| <div class="edit-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title"></div> | |||||
| </div> | |||||
| <div class="center-top"> | |||||
| <div> | |||||
| <div :class="showIndex == 1 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'"> | |||||
| <div class="el-step__icon-inner">1</div> | |||||
| </div> | |||||
| {{ $t('page.business.study.studyFormApply.jcsz') }} | |||||
| </div> | |||||
| <div class="line"></div> | |||||
| <div> | |||||
| <div :class="showIndex == 2 ? 'el-step__icon is-text is-finish' : 'el-step__icon is-text is-info'"> | |||||
| <div class="el-step__icon-inner">2</div> | |||||
| </div> | |||||
| {{ $t('page.business.study.studyFormApply.bdtb') }} | |||||
| </div> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button> | |||||
| <template v-if="showIndex == 1"> | |||||
| <el-button @click="save">{{ $t('page.business.study.studyFormApply.zc') }}</el-button> | |||||
| <el-button type="primary" @click="next">{{ $t('page.business.study.studyFormApply.next') }}</el-button> | |||||
| </template> | |||||
| <template v-else> | |||||
| <el-button @click="saveNext">{{ $t('page.business.study.studyFormApply.save') }}</el-button> | |||||
| <el-button type="primary" @click="openSubmit = true">{{ $t('page.business.study.studyFormApply.submit') | |||||
| }}</el-button> | |||||
| </template> | |||||
| </div> | |||||
| </div> | |||||
| <div class="edit-content"> | |||||
| <div class="content" style="width:60%" v-show="showIndex == 1"> | |||||
| <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.form.bdmb')" prop="templateId"> | |||||
| <SelectTemplate v-model="form.templateId" :name="form.templateMc" @change="selectTemplateChange" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.form.bdmc')" prop="bdmc"> | |||||
| <el-input type="text" v-model="form.bdmc" maxlength="50" :placeholder="$t('form.placeholderInput')" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.studyFormApply.sfbl')" prop="sfbl"> | |||||
| <el-select v-model="form.sfbl" :placeholder="$t('form.placeholderSelect')" > | |||||
| <el-option :label="$t('page.business.study.studyFormApply.yes')" :value="10" /> | |||||
| <el-option :label="$t('page.business.study.studyFormApply.no')" :value="1" /> | |||||
| </el-select> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.studyFormApply.bdsm')" prop="bdsm"> | |||||
| <el-input type="textarea" v-model="form.bdsm" :rows="5" maxlength="500" | |||||
| :placeholder="$t('form.placeholderInput')"> | |||||
| </el-input> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| </el-form> | |||||
| </div> | |||||
| <div class="content" v-show="showIndex == 2"> | |||||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="preApply" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.tjjl')" :visible.sync="openSubmit" width="500px" | |||||
| append-to-body :close-on-click-modal="false"> | |||||
| <el-form ref="formSubmit" :model="form" :rules="rulesApprove" label-width="120px"> | |||||
| todo | |||||
| </el-form> | |||||
| <!-- <div slot="footer" class="dialog-footer"> | |||||
| <el-button type="primary" @click="tj">{{ $t('form.confirm') }}</el-button> | |||||
| <el-button @click="openSubmit = false">{{ $t('form.cancel') }}</el-button> | |||||
| </div> --> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_bc, studyFormApply_tj, studyFormApply_info } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| import SelectTemplate from "@/views/business/comps/select/SelectTemplate"; | |||||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; | |||||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||||
| export default { | |||||
| name: "Bj", | |||||
| components: { SelectTemplate, SelectDeptUser, TemplateTable }, | |||||
| data() { | |||||
| return { | |||||
| open: false, | |||||
| showIndex: 1, | |||||
| form: {}, | |||||
| openSubmit: false, | |||||
| rulesApprove: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| fzrsh: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| shryId: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }] | |||||
| }, | |||||
| rules: { | |||||
| bdmc: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| templateId: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| sfbl: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| next() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| this.showIndex = 2 | |||||
| } | |||||
| }) | |||||
| }, | |||||
| selectTemplateChange(val) { | |||||
| this.form.bdnr = val.content | |||||
| this.form.templateMc = val.name | |||||
| }, | |||||
| cancel() { | |||||
| this.$emit('close') | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| studyId: null, | |||||
| bdbh: null, | |||||
| bdmc: null, | |||||
| bdsm: null, | |||||
| templateId: null, | |||||
| templateMc: null, | |||||
| bdnr: null, | |||||
| fzrsh: null, | |||||
| shryId: null, | |||||
| sfbl: null, | |||||
| shryMc: null, | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| selectDeptUserChange(val) { | |||||
| this.form.shryMc = val.name | |||||
| }, | |||||
| edit(row) { | |||||
| this.reset() | |||||
| this.showIndex = 1 | |||||
| if (row && row.id) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_info({ id: row.id }).then(response => { | |||||
| this.form = response.data | |||||
| this.form.qmyy = '制作提交预制表单' | |||||
| this.open = true | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } else { | |||||
| this.form = _.merge({}, this.form, row) | |||||
| this.open = true | |||||
| } | |||||
| }, | |||||
| save() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_bc(this.form).then(response => { | |||||
| this.$emit('close') | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| }, | |||||
| async saveNext() { | |||||
| let content = await this.$refs.templateTable.getFormData() | |||||
| this.form.bdnr = JSON.stringify(content) | |||||
| this.$modal.loading() | |||||
| studyFormApply_bc(this.form).then(response => { | |||||
| this.$emit('close') | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| tj() { | |||||
| this.$refs["formSubmit"].validate(valid => { | |||||
| if (valid) { | |||||
| this.dotj() | |||||
| } | |||||
| }) | |||||
| }, | |||||
| async dotj() { | |||||
| let content = await this.$refs.templateTable.getFormData() | |||||
| this.form.bdnr = JSON.stringify(content) | |||||
| this.$modal.loading() | |||||
| studyFormApply_tj(this.form).then(response => { | |||||
| this.$emit('close') | |||||
| this.openSubmit = false | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,269 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <div class="edit-container"> | |||||
| <div class="edit-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title"></div> | |||||
| </div> | |||||
| <div class="center-top"> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button> | |||||
| <el-button type="danger" @click="showApprove('复核拒绝')">{{ $t('page.business.study.studyFormApply.fhjj') | |||||
| }}</el-button> | |||||
| <el-button type="primary" @click="showApprove('复核通过')">{{ $t('page.business.study.studyFormApply.fhtg') | |||||
| }}</el-button> | |||||
| <el-button type="primary" @click="showApprove('通过')">{{ $t('page.business.study.studyFormApply.tongguo') | |||||
| }}</el-button> | |||||
| </div> | |||||
| </div> | |||||
| <div class="edit-content"> | |||||
| <div class="content-left"> | |||||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||||
| :show-overflow-tooltip="true" /> | |||||
| </el-table> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||||
| </div> | |||||
| </div> | |||||
| <div class="content-right"> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||||
| </div> | |||||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" /> | |||||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||||
| @pagination="getJjcgjList" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <el-dialog :title="$t(openTitle)" :visible.sync="openApprove" width="500px" append-to-body | |||||
| :close-on-click-modal="false"> | |||||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('form.qmyy')" prop="qmyy"> | |||||
| <el-input type="text" :value="formApprove.qmyy" maxlength="50" disabled | |||||
| :placeholder="$t('form.placeholderInput')" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row v-if="formApprove.qmyy == '复核拒绝'"> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('page.business.study.studyFormApply.reason')" prop="reason"> | |||||
| <el-input type="textarea" v-model="formApprove.reason" :rows="5" maxlength="500" | |||||
| :placeholder="$t('form.placeholderInput')"> | |||||
| </el-input> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row v-else> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('form.remark')"> | |||||
| <el-input type="textarea" v-model="formApprove.remark" :rows="5" 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="qmrmm"> | |||||
| <el-input type="password" v-model="formApprove.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="approve">{{ $t('form.confirm') }}</el-button> | |||||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||||
| </div> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_fhtg, studyFormApply_fhjj, studyFormApply_tg, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||||
| export default { | |||||
| name: "Fh", | |||||
| components: { TemplateTable, JcgjList }, | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| qmxxList: [], | |||||
| totalQmxx: 0, | |||||
| loadingQmxx: true, | |||||
| queryParamsQmxx: { | |||||
| formId: null, | |||||
| pageNum: 1, | |||||
| pageSize: 10 | |||||
| }, | |||||
| jcgjList: [], | |||||
| jcgjTotal: 0, | |||||
| queryParamsJcgj: { | |||||
| pageNum: 1, | |||||
| formId: null, | |||||
| pageSize: 10, | |||||
| }, | |||||
| openTitle: '', | |||||
| openApprove: false, | |||||
| formApprove: {}, | |||||
| rulesApprove: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| reason: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| getJjcgjList(val) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||||
| this.jcgjList = response.rows | |||||
| this.jcgjTotal = response.total | |||||
| this.$refs.jcgjList.init(this.jcgjList) | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| getQmxxList() { | |||||
| this.loadingQmxx = true | |||||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||||
| this.qmxxList = response.rows | |||||
| this.totalQmxx = response.total | |||||
| this.loadingQmxx = false | |||||
| }) | |||||
| }, | |||||
| cancel() { | |||||
| this.$emit('close') | |||||
| }, | |||||
| reset() { | |||||
| this.form = {} | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.$modal.loading() | |||||
| this.queryParamsJcgj.formId = row.id | |||||
| this.queryParamsQmxx.formId = row.id | |||||
| studyFormApply_info({ id: row.id }).then(response => { | |||||
| this.form = response.data | |||||
| this.getQmxxList() | |||||
| this.getJjcgjList() | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| showApprove(qmyy) { | |||||
| this.openApprove = true | |||||
| this.resetApprove() | |||||
| this.formApprove.id = this.form.id | |||||
| this.formApprove.qmyy = qmyy | |||||
| if (qmyy == '复核通过') { | |||||
| this.openTitle = 'page.business.study.studyFormApply.fhtg' | |||||
| } else if (qmyy == '复核拒绝') { | |||||
| this.openTitle = 'page.business.study.studyFormApply.fhjj' | |||||
| } else if (qmyy == '通过') { | |||||
| this.openTitle = 'page.business.study.studyFormApply.tongguo' | |||||
| } | |||||
| }, | |||||
| resetApprove() { | |||||
| this.formApprove = { | |||||
| id: null, | |||||
| qmyy: '', | |||||
| bdnr: '', | |||||
| remark: '', | |||||
| reason: '', | |||||
| qmrmm: '', | |||||
| } | |||||
| this.resetForm("formApprove") | |||||
| }, | |||||
| approve() { | |||||
| this.$refs["formApprove"].validate(valid => { | |||||
| if (valid) { | |||||
| this.doapprove() | |||||
| } | |||||
| }) | |||||
| }, | |||||
| async doapprove() { | |||||
| let content = await this.$refs.templateTable.getFormData() | |||||
| this.formApprove.bdnr = JSON.stringify(content) | |||||
| this.$modal.loading() | |||||
| if (this.formApprove.qmyy == '复核通过') { | |||||
| studyFormApply_fhtg(this.formApprove).then(response => { | |||||
| this.openApprove = false | |||||
| this.$modal.closeLoading() | |||||
| this.$emit('close') | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } else if (this.formApprove.qmyy == '复核拒绝') { | |||||
| this.formApprove.remark=this.formApprove.reason | |||||
| studyFormApply_fhjj(this.formApprove).then(response => { | |||||
| this.openApprove = false | |||||
| this.$modal.closeLoading() | |||||
| this.$emit('close') | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } else { | |||||
| studyFormApply_tg(this.formApprove).then(response => { | |||||
| this.openApprove = false | |||||
| this.$modal.closeLoading() | |||||
| this.$emit('close') | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,115 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.sqfz')" :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('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="5" 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="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> | |||||
| import { studyFormApply_fz } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| export default { | |||||
| name: "Fz", | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| isBatch: false, | |||||
| ids: [], | |||||
| selectList: [], | |||||
| open: false, | |||||
| form: {}, | |||||
| rules: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| remark: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| cancel() { | |||||
| this.open = false | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| qmyy: '申请废止', | |||||
| remark: null, | |||||
| qmrmm: null | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.form.id = row.id | |||||
| this.open = true | |||||
| }, | |||||
| save() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| studyFormApply_fz(this.form).then(response => { | |||||
| this.open = false | |||||
| this.$emit('callback') | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,126 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.rybg')" :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('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('page.business.study.studyFormApply.reason')" prop="remark"> | |||||
| <el-input type="textarea" v-model="form.remark" :rows="5" 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="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> | |||||
| import { studyFormApply_ghgsr } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| export default { | |||||
| name: "Ghgsr", | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| isBatch: false, | |||||
| ids: [], | |||||
| selectList: [], | |||||
| open: false, | |||||
| form: {}, | |||||
| rules: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| remark: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| qmyy: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| cancel() { | |||||
| this.open = false | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| qmyy: '更换归属人', | |||||
| userId: null, | |||||
| UserMc: null, | |||||
| remark: null, | |||||
| qmrmm: null | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.form.id = row.id | |||||
| this.form.userId = row.userId | |||||
| this.form.userMc = row.userMc | |||||
| this.open = true | |||||
| }, | |||||
| save() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_ghgsr(this.form).then(response => { | |||||
| this.open = false | |||||
| this.$emit('callback') | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,126 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.jiaqian')" :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('form.qmyy')" prop="qmyy"> | |||||
| <el-select v-model="form.qmyy" :placeholder="$t('form.placeholderSelect')" style="width: 100%;"> | |||||
| <el-option label="开始现场复核" value="开始现场复核" /> | |||||
| <el-option label="结束现场复核" value="结束现场复核" /> | |||||
| <el-option label="申明协作" value="申明协作" /> | |||||
| <el-option label="补充说明" value="补充说明" /> | |||||
| </el-select> | |||||
| </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="5" 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="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> | |||||
| import { studyFormApply_jq } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| export default { | |||||
| name: "Fz", | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| isBatch: false, | |||||
| ids: [], | |||||
| selectList: [], | |||||
| open: false, | |||||
| form: {}, | |||||
| rules: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| remark: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| qmyy: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| cancel() { | |||||
| this.open = false | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| qmyy: null, | |||||
| remark: null, | |||||
| qmrmm: null | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.form.id = row.id | |||||
| this.open = true | |||||
| }, | |||||
| save() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_jq(this.form).then(response => { | |||||
| this.open = false | |||||
| this.$emit('callback') | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,126 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.qrfz')" :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('form.qmyy')" prop="qmyymc"> | |||||
| <el-input type="text" :value="form.qmyymc" 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.study.studyFormApply.reason')" prop="remark"> | |||||
| <el-input type="textarea" v-model="form.remark" :rows="5" 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="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" style="text-align: center;"> | |||||
| <el-button type="danger" @click="reject">{{ $t('page.business.study.studyFormApply.reject') }}</el-button> | |||||
| <el-button type="primary" @click="approve">{{ $t('page.business.study.studyFormApply.approve') }}</el-button> | |||||
| </div> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_qrfz } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| export default { | |||||
| name: "Qrfz", | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| isBatch: false, | |||||
| ids: [], | |||||
| selectList: [], | |||||
| open: false, | |||||
| form: {}, | |||||
| rules: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| remark: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| cancel() { | |||||
| this.open = false | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| qmyymc: '废止通过/拒绝', | |||||
| qmyy: null, | |||||
| remark: null, | |||||
| qmrmm: null | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.form.id = row.id | |||||
| this.open = true | |||||
| }, | |||||
| reject() { | |||||
| this.form.qmyy = 1 | |||||
| this.save() | |||||
| }, | |||||
| approve() { | |||||
| this.form.qmyy = 10 | |||||
| this.save() | |||||
| }, | |||||
| save() { | |||||
| this.$refs["form"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_qrfz(this.form).then(response => { | |||||
| this.open = false | |||||
| this.$emit('callback') | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,216 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <div class="edit-container"> | |||||
| <div class="edit-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title"></div> | |||||
| </div> | |||||
| <div class="center-top"> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button> | |||||
| <el-button type="primary" @click="showApprove">{{ $t('page.business.study.studyFormApply.shenyue') | |||||
| }}</el-button> | |||||
| </div> | |||||
| </div> | |||||
| <div class="edit-content"> | |||||
| <div class="content-left"> | |||||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||||
| :show-overflow-tooltip="true" /> | |||||
| </el-table> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||||
| </div> | |||||
| </div> | |||||
| <div class="content-right"> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||||
| </div> | |||||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/> | |||||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||||
| @pagination="getJjcgjList" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.shenyue')" :visible.sync="openApprove" width="500px" | |||||
| append-to-body :close-on-click-modal="false"> | |||||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('form.qmyy')" prop="qmyy"> | |||||
| <el-input type="text" :value="formApprove.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="formApprove.remark" :rows="5" 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="qmrmm"> | |||||
| <el-input type="password" v-model="formApprove.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="approve">{{ $t('form.confirm') }}</el-button> | |||||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||||
| </div> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_sy, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||||
| export default { | |||||
| name: "Sy", | |||||
| components: { TemplateTable, JcgjList }, | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| qmxxList: [], | |||||
| totalQmxx: 0, | |||||
| loadingQmxx: true, | |||||
| queryParamsQmxx: { | |||||
| formId: null, | |||||
| pageNum: 1, | |||||
| pageSize: 10 | |||||
| }, | |||||
| jcgjList: [], | |||||
| jcgjTotal: 0, | |||||
| queryParamsJcgj: { | |||||
| pageNum: 1, | |||||
| formId: null, | |||||
| pageSize: 10, | |||||
| }, | |||||
| openApprove: false, | |||||
| formApprove: {}, | |||||
| rulesApprove: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }] | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| getJjcgjList(val) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||||
| this.jcgjList = response.rows | |||||
| this.jcgjTotal = response.total | |||||
| this.$refs.jcgjList.init(this.jcgjList) | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| getQmxxList() { | |||||
| this.loadingQmxx = true | |||||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||||
| this.qmxxList = response.rows | |||||
| this.totalQmxx = response.total | |||||
| this.loadingQmxx = false | |||||
| }) | |||||
| }, | |||||
| cancel() { | |||||
| this.$emit('close') | |||||
| }, | |||||
| reset() { | |||||
| this.form = {} | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.$modal.loading() | |||||
| this.queryParamsJcgj.formId = row.id | |||||
| this.queryParamsQmxx.formId = row.id | |||||
| studyFormApply_info({ id: row.id }).then(response => { | |||||
| this.form = response.data | |||||
| this.getQmxxList() | |||||
| this.getJjcgjList() | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| showApprove() { | |||||
| this.resetApprove() | |||||
| this.formApprove.id = this.form.id | |||||
| this.openApprove = true | |||||
| }, | |||||
| resetApprove() { | |||||
| this.formApprove = { | |||||
| id: null, | |||||
| qmyy: '已审阅', | |||||
| remark: '', | |||||
| qmrmm: '', | |||||
| } | |||||
| this.resetForm("formApprove") | |||||
| }, | |||||
| approve() { | |||||
| this.$refs["formApprove"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_sy(this.formApprove).then(response => { | |||||
| this.openApprove = false | |||||
| this.$modal.closeLoading() | |||||
| this.$emit('close') | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,261 @@ | |||||
| G<template> | |||||
| <div> | |||||
| <div class="edit-container"> | |||||
| <div class="edit-top"> | |||||
| <div class="left-top"> | |||||
| <img src="@/assets/images/back.png" @click="cancel()" /> | |||||
| <div class="left-title"></div> | |||||
| </div> | |||||
| <div class="center-top"> | |||||
| </div> | |||||
| <div class="right-top"> | |||||
| <el-button @click="cancel()">{{ $t('form.close') }}</el-button> | |||||
| <el-button type="primary" v-if="form.bdzt === 5 && form.tbzt === 1" @click="openApprove = true">{{ | |||||
| $t('page.business.study.studyFormApply.tb') }}</el-button> | |||||
| </div> | |||||
| </div> | |||||
| <div class="edit-content "> | |||||
| <div class="content"> | |||||
| <div> | |||||
| <el-button type="primary" @click="dcqbjcgj">{{ $t('page.business.study.studyFormApply.dcqbjcgj') }} | |||||
| </el-button> | |||||
| <el-button type="primary" @click="dclcjcgj">{{ $t('page.business.study.studyFormApply.dclcjcgj') }} | |||||
| </el-button> | |||||
| <el-button type="primary" @click="dcbjjcgj">{{ $t('page.business.study.studyFormApply.dcbjjcgj') }} | |||||
| </el-button> | |||||
| <el-button type="primary" @click="dcxgjcgj">{{ $t('page.business.study.studyFormApply.dcxgjcgj') }} | |||||
| </el-button> | |||||
| <el-button type="primary" @click="dcbhsjgj">{{ $t('page.business.study.studyFormApply.dcbhsjgj') }} | |||||
| </el-button> | |||||
| </div> | |||||
| <TemplateTable ref="templateTable" :sn="form.templateSn" :templateData="form" fillType="readonly" /> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.qmxx') }}</div> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <el-table :data="qmxxList" v-loading="loadingQmxx"> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmr')" align="center" prop="qmrMc" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmyy')" align="center" prop="qmyy" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.qmsj')" align="center" prop="createTime" | |||||
| width="150px" /> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.bzyy')" align="center" prop="remark" | |||||
| :show-overflow-tooltip="true" /> | |||||
| </el-table> | |||||
| </div> | |||||
| <div class="pal"> | |||||
| <pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum" | |||||
| :limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" /> | |||||
| </div> | |||||
| <div class="content-title"> | |||||
| <div class="line"></div> | |||||
| <div class="subtitle"> {{ $t('page.business.study.studyFormApply.jcgj') }}</div> | |||||
| </div> | |||||
| <JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/> | |||||
| <pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal" | |||||
| @pagination="getJjcgjList" /> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <!-- 填报 --> | |||||
| <el-dialog :title="$t('page.business.study.studyFormApply.cjjl')" :visible.sync="openApprove" width="500px" | |||||
| append-to-body :close-on-click-modal="false"> | |||||
| <el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px"> | |||||
| <el-alert :title="$t('page.business.study.studyFormApply.ts')" :closable="false" type="success"> | |||||
| </el-alert> | |||||
| <el-row> | |||||
| <el-col :span="24"> | |||||
| <el-form-item :label="$t('form.qmyy')" prop="qmyy"> | |||||
| <el-input type="text" :value="formApprove.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="formApprove.remark" :rows="5" 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="qmrmm"> | |||||
| <el-input type="password" v-model="formApprove.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="approve">{{ $t('form.confirm') }}</el-button> | |||||
| <el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button> | |||||
| </div> | |||||
| </el-dialog> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_tb, studyFormApply_info, studyFormApply_jcgj, studyFormApply_qmxx } from "@/api/business/study/studyFormApply" | |||||
| import { mapGetters } from 'vuex' | |||||
| import JcgjList from "@/views/business/comps/common/JcgjList"; | |||||
| import TemplateTable from '@/views/business/comps/template/TemplateTable'; | |||||
| export default { | |||||
| name: "Xq", | |||||
| components: { JcgjList, TemplateTable }, | |||||
| data() { | |||||
| return { | |||||
| openApprove: false, | |||||
| formApprove: { | |||||
| id: null, | |||||
| qmyy: '创建记录', | |||||
| remark: '', | |||||
| qmrmm: '', | |||||
| }, | |||||
| rulesApprove: { | |||||
| qmrmm: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }] | |||||
| }, | |||||
| qmxxList: [], | |||||
| totalQmxx: 0, | |||||
| loadingQmxx: true, | |||||
| queryParamsQmxx: { | |||||
| formId: null, | |||||
| pageNum: 1, | |||||
| pageSize: 10 | |||||
| }, | |||||
| open: false, | |||||
| showIndex: 1, | |||||
| form: {}, | |||||
| rules: { | |||||
| bdmc: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }], | |||||
| templateId: [{ | |||||
| required: true, | |||||
| message: ' ', | |||||
| trigger: 'blur' | |||||
| }] | |||||
| }, | |||||
| jcgjTotal: 0, | |||||
| jcgjList: [], | |||||
| queryParamsJcgj: { | |||||
| pageNum: 1, | |||||
| formId: null, | |||||
| pageSize: 10, | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'nickName' | |||||
| ]), | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| dcqbjcgj() { | |||||
| alert('todo') | |||||
| }, | |||||
| dclcjcgj() { | |||||
| alert('todo') | |||||
| }, | |||||
| dcbjjcgj() { | |||||
| alert('todo') | |||||
| }, | |||||
| dcxgjcgj() { | |||||
| alert('todo') | |||||
| }, | |||||
| dcbhsjgj() { | |||||
| alert('todo') | |||||
| }, | |||||
| getJjcgjList(val) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_jcgj(_.merge({}, this.queryParamsJcgj, val)).then(response => { | |||||
| this.jcgjList = response.rows | |||||
| this.jcgjTotal = response.total | |||||
| this.$refs.jcgjList.init(this.jcgjList) | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| getQmxxList() { | |||||
| this.loadingQmxx = true | |||||
| studyFormApply_qmxx(this.queryParamsQmxx).then(response => { | |||||
| this.qmxxList = response.rows | |||||
| this.totalQmxx = response.total | |||||
| this.loadingQmxx = false | |||||
| }) | |||||
| }, | |||||
| cancel() { | |||||
| this.$emit('close') | |||||
| }, | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| studyId: null, | |||||
| bdbh: null, | |||||
| bdmc: null, | |||||
| bdsm: null, | |||||
| templateId: null, | |||||
| templateMc: null, | |||||
| bdnr: null | |||||
| } | |||||
| this.resetForm("form") | |||||
| }, | |||||
| show(row) { | |||||
| this.reset() | |||||
| this.$modal.loading() | |||||
| this.formApprove.id = row.id | |||||
| this.queryParamsJcgj.formId = row.id | |||||
| this.queryParamsQmxx.formId = row.id | |||||
| studyFormApply_info({ id: row.id }).then(response => { | |||||
| this.form = response.data | |||||
| this.getQmxxList() | |||||
| this.getJjcgjList() | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| approve() { | |||||
| this.$refs["formApprove"].validate(valid => { | |||||
| if (valid) { | |||||
| this.$modal.loading() | |||||
| studyFormApply_tb(this.formApprove).then(response => { | |||||
| this.$emit('close') | |||||
| this.openApprove = false | |||||
| this.$modal.closeLoading() | |||||
| }).finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,363 @@ | |||||
| <template> | |||||
| <div> | |||||
| <div class="sqbd-list" v-show="!showDetail && !showEdit && !showAudit && !showFh"> | |||||
| <div class="sqbd-search"> | |||||
| <el-form :model="searchForm" ref="searchForm" :inline="true" label-width="100px"> | |||||
| <el-row> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.bdmc')" prop="name"> | |||||
| <el-input v-model="searchForm.bdmc" :placeholder="$t('form.placeholderInput')" clearable | |||||
| style="width: 200px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.bdbh')" prop="sn"> | |||||
| <el-input v-model="searchForm.bdbh" :placeholder="$t('form.placeholderInput')" clearable | |||||
| style="width: 200px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.gsr')" prop="userId"> | |||||
| <SelectDeptUser v-model="searchForm.userId" style="width: 200px" :name="searchForm.userMc" key="userId" | |||||
| @change="userChange" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item> | |||||
| <div style="margin-left: 100px;"> | |||||
| <el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button> | |||||
| <el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button> | |||||
| </div> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-row> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.xtmbmc')" prop="templateName"> | |||||
| <el-input v-model="searchForm.templateMc" :placeholder="$t('form.placeholderInput')" clearable | |||||
| style="width: 200px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.cjsj')"> | |||||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" | |||||
| :start-placeholder="$t('page.business.form.startDate')" | |||||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||||
| style="width: 200px" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.form.tjsj')"> | |||||
| <el-date-picker v-model="daterangetj" clearable type="daterange" range-separator="-" | |||||
| :start-placeholder="$t('page.business.form.startDate')" | |||||
| :end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" @change="search" | |||||
| style="width: 200px" /> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| <el-col :span="6"> | |||||
| <el-form-item :label="$t('page.business.study.studyFormApply.sfbl')"> | |||||
| <el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" clearable | |||||
| @change="search"> | |||||
| <el-option :label="$t('page.business.study.studyFormApply.yes')" :value="10" /> | |||||
| <el-option :label="$t('page.business.study.studyFormApply.no')" :value="1" /> | |||||
| </el-select> | |||||
| </el-form-item> | |||||
| </el-col> | |||||
| </el-row> | |||||
| </el-form> | |||||
| </div> | |||||
| <div class="sqbd-content"> | |||||
| <el-row class="add-box"> | |||||
| <el-col> | |||||
| <el-button type="primary" icon="el-icon-plus" @click="add()" v-hasPermi="['business:studyFormApply:xz']">{{ | |||||
| $t('page.business.study.studyFormApply.xzbd') }}</el-button> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-table v-loading="loading" :data="list"> | |||||
| <el-table-column :label="$t('page.business.form.bh')" prop="bdbh" /> | |||||
| <el-table-column :label="$t('page.business.form.bdmc')" prop="bdmc" /> | |||||
| <el-table-column :label="$t('page.business.form.xtmbmc')" prop="templateMc" /> | |||||
| <el-table-column :label="$t('page.business.form.cjsj')" align="center" prop="createTime" width="140" /> | |||||
| <el-table-column :label="$t('page.business.form.gsr')" align="center" prop="userMc" width="100" /> | |||||
| <el-table-column :label="$t('page.business.form.status')" prop="status" align="center" width="100"> | |||||
| <template slot-scope="scope"> | |||||
| <span v-if="scope.row.bdzt === 1">{{ $t('page.business.study.studyFormApply.tbz') }}</span> | |||||
| <span v-if="scope.row.bdzt === 3">{{ $t('page.business.study.studyFormApply.ytj') }}</span> | |||||
| <span v-if="scope.row.bdzt === 5">{{ $t('page.business.study.studyFormApply.ywc') }}</span> | |||||
| <span v-if="scope.row.bdzt === 7">{{ $t('page.business.study.studyFormApply.ywcfh') }}</span> | |||||
| <span v-if="scope.row.bdzt === 9">{{ $t('page.business.study.studyFormApply.dfz') }}</span> | |||||
| <span v-if="scope.row.bdzt === 11">{{ $t('page.business.study.studyFormApply.yfz') }}</span> | |||||
| </template> | |||||
| </el-table-column> | |||||
| <el-table-column :label="$t('page.business.study.studyFormApply.sfbl')" align="center" prop="status" | |||||
| width="100"> | |||||
| <template slot-scope="scope"> | |||||
| <span v-if="scope.row.sfbl === 10">{{ $t('page.business.study.studyFormApply.yes') }}</span> | |||||
| <span v-if="scope.row.sfbl === 1">{{ $t('page.business.study.studyFormApply.no') }}</span> | |||||
| </template> | |||||
| </el-table-column> | |||||
| <el-table-column :label="$t('page.business.form.tjsj')" align="center" prop="tjsj" width="140" /> | |||||
| <el-table-column :label="$t('form.operate')" align="left" fixed="right" width="200"> | |||||
| <template slot-scope="scope"> | |||||
| <!-- 表单状态:1:填报中;3:已提交;5:已完成(经复核);7:已完成;9:待废止;11:已废止 --> | |||||
| <!-- 详情 --> | |||||
| <el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:studyFormApply:xq']">{{ | |||||
| $t('form.detail') }}</el-button> | |||||
| <!-- 编辑 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 1 || scope.row.bdzt === 5 || scope.row.bdzt === 7" | |||||
| @click="edit(scope.row)" v-hasPermi="['business:studyFormApply:bj']">{{ | |||||
| $t('form.edit') }}</el-button> | |||||
| <!-- 复核 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 3" @click="fh(scope.row)" | |||||
| v-hasPermi="['business:studyFormApply:fh']">{{ | |||||
| $t('page.business.study.studyFormApply.fh') }}</el-button> | |||||
| <!-- 加签 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 1" @click="jq(scope.row)" | |||||
| v-hasPermi="['business:studyFormApply:jq']">{{ | |||||
| $t('page.business.study.studyFormApply.jq') }}</el-button> | |||||
| <!-- 更换归属人 --> | |||||
| <el-button type="text" | |||||
| v-if="scope.row.bdzt === 1 || scope.row.bdzt === 3 || scope.row.bdzt === 5 || scope.row.bdzt === 7" | |||||
| @click="ghgsr(scope.row)" v-hasPermi="['business:studyFormApply:ghgsr']">{{ | |||||
| $t('page.business.study.studyFormApply.ghgsr') }}</el-button> | |||||
| <!-- 审阅 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 5 || scope.row.bdzt === 7" @click="sy(scope.row)" | |||||
| v-hasPermi="['business:studyFormApply:sy']">{{ | |||||
| $t('page.business.study.studyFormApply.sy') }}</el-button> | |||||
| <!-- 废止 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 1" @click="fz(scope.row)" | |||||
| v-hasPermi="['business:studyFormApply:fz']">{{ | |||||
| $t('page.business.study.studyFormApply.fz') }}</el-button> | |||||
| <!-- 确认废止 --> | |||||
| <el-button type="text" v-if="scope.row.bdzt === 9" @click="qrfz(scope.row)" | |||||
| v-hasPermi="['business:studyFormApply:qrfz']">{{ | |||||
| $t('page.business.study.studyFormApply.qrfz') }}</el-button> | |||||
| </template> | |||||
| </el-table-column> | |||||
| </el-table> | |||||
| <pagination v-show="total > 0" :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize" | |||||
| @pagination="getList" /> | |||||
| </div> | |||||
| </div> | |||||
| <!-- 编辑 --> | |||||
| <Bj v-show="showEdit" key="Bj" ref="Bj" @close="bjClose" /> | |||||
| <!-- 详情 --> | |||||
| <Xq v-show="showDetail" key="Xq" ref="Xq" @close="xqClose" /> | |||||
| <!-- 审阅 --> | |||||
| <Sy v-show="showAudit" key="Sy" ref="Sy" @close="syClose" /> | |||||
| <!-- 复核 --> | |||||
| <Fh v-show="showFh" key="Fh" ref="Fh" @close="fhClose" /> | |||||
| <!-- 废止 --> | |||||
| <Fz key="Fz" ref="Fz" @callback="search" /> | |||||
| <!-- 确认废止 --> | |||||
| <Qrfz key="Qrfz" ref="Qrfz" @callback="search" /> | |||||
| <!-- 加签 --> | |||||
| <Jq key="Jq" ref="Jq" @callback="search" /> | |||||
| <!-- 更换归属人 --> | |||||
| <Ghgsr key="Ghgsr" ref="Ghgsr" @callback="search" /> | |||||
| <SelectDeptUserDialog ref="selectDeptUserDialog" @change="ghgsrChange" /> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { studyFormApply_list } from '@/api/business/study/studyFormApply' | |||||
| import Bj from "./sqbd/Bj"; | |||||
| import Xq from "./sqbd/Xq"; | |||||
| import Sy from "./sqbd/Sy"; | |||||
| import Fz from "./sqbd/Fz"; | |||||
| import Fh from "./sqbd/Fh"; | |||||
| import Qrfz from "./sqbd/Qrfz"; | |||||
| import Jq from "./sqbd/Jq"; | |||||
| import Ghgsr from "./sqbd/Ghgsr"; | |||||
| import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; | |||||
| import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDialog'; | |||||
| import { mapGetters } from 'vuex' | |||||
| import moment from "moment"; | |||||
| export default { | |||||
| name: 'SqbdList', | |||||
| props: { | |||||
| study: { | |||||
| type: Object, | |||||
| default: () => { | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| ...mapGetters([ | |||||
| 'id' | |||||
| ]), | |||||
| }, | |||||
| watch: { | |||||
| study: { | |||||
| handler(newVal) { | |||||
| this.searchForm.studySn = newVal.sn | |||||
| this.searchForm.studyMc = newVal.name | |||||
| this.searchForm.studyId = newVal.studyId | |||||
| this.searchForm.studySubjectId = newVal.studySubjectId | |||||
| this.leader = newVal.leader | |||||
| this.search() | |||||
| }, | |||||
| immediate: true, | |||||
| deep: true | |||||
| } | |||||
| }, | |||||
| components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, SelectDeptUser, SelectDeptUserDialog }, | |||||
| data() { | |||||
| return { | |||||
| leader: null, | |||||
| showFh: false, | |||||
| showAudit: false, | |||||
| showEdit: false, | |||||
| showDetail: false, | |||||
| daterangetj: [], | |||||
| daterange: [], | |||||
| searchForm: { | |||||
| pageNum: 1, | |||||
| pageSize: 10, | |||||
| studyId: '', | |||||
| studySn: '', | |||||
| studyMc: '', | |||||
| studySubjectId: '', | |||||
| bdbh: '', | |||||
| bdmc: '', | |||||
| userId: '', | |||||
| userMc: '', | |||||
| templateMc: '', | |||||
| cjsjjs: '', | |||||
| cjsjks: '', | |||||
| tjsjjs: '', | |||||
| tjsjks: '', | |||||
| }, | |||||
| loading: false, | |||||
| total: 0, | |||||
| list: [], | |||||
| currentRow: null | |||||
| } | |||||
| }, | |||||
| created() { }, | |||||
| methods: { | |||||
| ghgsr(row) { | |||||
| this.currentRow = row | |||||
| this.$refs.selectDeptUserDialog.show(null, null) | |||||
| }, | |||||
| ghgsrChange(val) { | |||||
| this.$refs.Ghgsr.show({ id: this.currentRow.id, userId: val.id, userMc: val.name }) | |||||
| }, | |||||
| jq(row) { | |||||
| this.$refs.Jq.show(row) | |||||
| }, | |||||
| qrfz(row) { | |||||
| this.$refs.Qrfz.show(row) | |||||
| }, | |||||
| fz(row) { | |||||
| this.$refs.Fz.show(row) | |||||
| }, | |||||
| userChange(val) { | |||||
| this.searchForm.userId = val.id | |||||
| this.searchForm.userMc = val.name | |||||
| this.search() | |||||
| }, | |||||
| search() { | |||||
| this.searchForm.pageNum = 1 | |||||
| this.getList() | |||||
| }, | |||||
| reset() { | |||||
| this.resetForm("searchForm") | |||||
| this.handleQuery() | |||||
| }, | |||||
| getList() { | |||||
| if (this.daterange != null && this.daterange.length > 0) { | |||||
| this.searchForm.cjsjks = this.daterange[0] | |||||
| this.searchForm.cjsjjs = moment().add(this.daterange[1], 'days').format('YYYY-MM-DD'); | |||||
| } else { | |||||
| this.searchForm.cjsjks = '' | |||||
| this.searchForm.cjsjjs = '' | |||||
| } | |||||
| if (this.daterangetj != null && this.daterangetj.length > 0) { | |||||
| this.searchForm.tjsjks = this.daterangetj[0] | |||||
| this.searchForm.tjsjjs = moment().add(this.daterangetj[1], 'days').format('YYYY-MM-DD'); | |||||
| } else { | |||||
| this.searchForm.tjsjks = '' | |||||
| this.searchForm.tjsjjs = '' | |||||
| } | |||||
| this.loading = true | |||||
| studyFormApply_list(this.searchForm).then(response => { | |||||
| this.list = response.rows | |||||
| this.total = response.total | |||||
| this.loading = false | |||||
| }) | |||||
| }, | |||||
| add() { | |||||
| this.showEdit = true | |||||
| this.$emit('showDetail', this.showEdit) | |||||
| this.$refs.Bj.edit({studySn:this.searchForm.studySn, studyMc:this.searchForm.studyMc, studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }) | |||||
| }, | |||||
| edit(row) { | |||||
| this.showEdit = true | |||||
| this.$emit('showDetail', this.showEdit) | |||||
| this.$refs.Bj.edit(row) | |||||
| }, | |||||
| bjClose() { | |||||
| this.showEdit = false | |||||
| this.$emit('showDetail', this.showEdit) | |||||
| this.search() | |||||
| }, | |||||
| xqClose() { | |||||
| this.showDetail = false | |||||
| this.$emit('showDetail', this.showDetail) | |||||
| this.search() | |||||
| }, | |||||
| syClose() { | |||||
| this.showAudit = false | |||||
| this.$emit('showDetail', this.showAudit) | |||||
| this.search() | |||||
| }, | |||||
| fhClose() { | |||||
| this.showFh = false | |||||
| this.$emit('showDetail', this.showFh) | |||||
| this.search() | |||||
| }, | |||||
| detail(row) { | |||||
| this.showDetail = true | |||||
| this.$emit('showDetail', this.showDetail) | |||||
| this.$refs.Xq.show(row) | |||||
| }, | |||||
| sy(row) { | |||||
| this.showAudit = true | |||||
| this.$emit('showDetail', this.showAudit) | |||||
| this.$refs.Sy.show(row) | |||||
| }, | |||||
| fh(row) { | |||||
| this.showFh = true | |||||
| this.$emit('showDetail', this.showFh) | |||||
| this.$refs.Fh.show(row) | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .sqbd-list { | |||||
| .sqbd-search { | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| margin-bottom: 10px; | |||||
| .right-btn { | |||||
| text-align: right | |||||
| } | |||||
| } | |||||
| .sqbd-content { | |||||
| padding: 20px; | |||||
| background: #fff; | |||||
| .add-box { | |||||
| margin-bottom: 10px; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,66 @@ | |||||
| <template> | |||||
| <div class="study-tbbd"> | |||||
| <div class="tbbd-right"> | |||||
| 配置方法列表 | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| name: 'StudySyff', | |||||
| props: { | |||||
| study:{ | |||||
| type:Object, | |||||
| default:()=>{ | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| study: { | |||||
| immediate: true, | |||||
| handler(v) { | |||||
| this.studyInfo = { | |||||
| studyId:v.id, | |||||
| studyLeader:v.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| }, | |||||
| deep: true, | |||||
| }, | |||||
| }, | |||||
| components: {}, | |||||
| computed: {}, | |||||
| filters: {}, | |||||
| data() { | |||||
| return { | |||||
| studyInfo:{ | |||||
| studyId:this.study.id, | |||||
| studyLeader:this.study.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| created() {}, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-tbbd { | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| .tbbd-left { | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| margin-right: 10px; | |||||
| flex-shrink: 0; | |||||
| width: 350px; | |||||
| } | |||||
| .tbbd-right{ | |||||
| flex-grow: 1; | |||||
| overflow: hidden; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,72 @@ | |||||
| <template> | |||||
| <div class="study-tbbd"> | |||||
| <div class="tbbd-right"> | |||||
| 填报表单列表 | |||||
| <!-- <tbbdList :study="studyInfo" @showDetail="showDetailCallback"/> --> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| // import tbbdList from './tbbdList.vue' | |||||
| export default { | |||||
| name: 'StudyTbbd', | |||||
| props: { | |||||
| study:{ | |||||
| type:Object, | |||||
| default:()=>{ | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| study: { | |||||
| immediate: true, | |||||
| handler(v) { | |||||
| this.studyInfo = { | |||||
| studyId:v.id, | |||||
| studyLeader:v.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| }, | |||||
| components: { | |||||
| // tbbdList | |||||
| }, | |||||
| computed: {}, | |||||
| filters: {}, | |||||
| data() { | |||||
| return { | |||||
| studyInfo:{ | |||||
| studyId:this.study.id, | |||||
| studyLeader:this.study.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| created() {}, | |||||
| methods: { | |||||
| showDetailCallback(val){ | |||||
| this.$emit('showDetail',val) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-tbbd { | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| .tbbd-left { | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| margin-right: 10px; | |||||
| flex-shrink: 0; | |||||
| width: 350px; | |||||
| } | |||||
| .tbbd-right{ | |||||
| flex-grow: 1; | |||||
| overflow: hidden; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,40 @@ | |||||
| <template> | |||||
| <div class="study-syxx"> | |||||
| 物资列表 | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| export default { | |||||
| name: 'StudyWzlb', | |||||
| props: { | |||||
| study: { | |||||
| type: Object, | |||||
| default: () => { | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch: { | |||||
| study: { | |||||
| immediate: true, | |||||
| handler(v) { | |||||
| this.id = v.id | |||||
| // this.getStudyInfo() | |||||
| } | |||||
| }, | |||||
| }, | |||||
| components: { }, | |||||
| data() { | |||||
| return { | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| </style> | |||||
| @ -0,0 +1,72 @@ | |||||
| <template> | |||||
| <div class="study-ytbd"> | |||||
| <div class="ytbd-right"> | |||||
| 预填表单列表 | |||||
| <!-- <ytbdList :study="studyInfo" @showDetail="showDetailCallback"/> --> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| // import ytbdList from './ytbdList.vue' | |||||
| export default { | |||||
| name: 'StudyYtbd', | |||||
| props: { | |||||
| study:{ | |||||
| type:Object, | |||||
| default:()=>{ | |||||
| return {} | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| study: { | |||||
| immediate: true, | |||||
| handler(v) { | |||||
| this.studyInfo = { | |||||
| studyId:v.id, | |||||
| studyLeader:v.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| }, | |||||
| components: { | |||||
| // ytbdList | |||||
| }, | |||||
| computed: {}, | |||||
| filters: {}, | |||||
| data() { | |||||
| return { | |||||
| studyInfo:{ | |||||
| studyId:this.study.id, | |||||
| studyLeader:this.study.leader, | |||||
| studySubjectId:'' | |||||
| } | |||||
| } | |||||
| }, | |||||
| created() {}, | |||||
| methods: { | |||||
| showDetailCallback(val){ | |||||
| this.$emit('showDetail',val) | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-ytbd { | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| .ytbd-left { | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| margin-right: 10px; | |||||
| flex-shrink: 0; | |||||
| width: 350px; | |||||
| } | |||||
| .ytbd-right{ | |||||
| flex-grow: 1; | |||||
| overflow: hidden; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,391 @@ | |||||
| <template> | |||||
| <div class="app-container study-page"> | |||||
| <div class="content-list" v-show="showType==='list'"> | |||||
| <el-form :model="searchForm" ref="searchForm" :inline="true" class="search-box"> | |||||
| <el-form-item :label="$t('page.business.study.drug.name')" prop="name"> | |||||
| <el-input v-model="searchForm.name" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| <el-form-item :label="$t('page.business.study.drug.sn')" prop="sn"> | |||||
| <el-input v-model="searchForm.sn" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| <el-form-item :label="$t('page.business.study.drug.dateRange')"> | |||||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" :start-placeholder="$t('page.business.study.drug.startDate')" | |||||
| :end-placeholder="$t('page.business.study.drug.endDate')" value-format="yyyy-MM-dd" @change="search" style="width: 220px" /> | |||||
| </el-form-item> | |||||
| <el-form-item prop="status" :label="$t('page.business.study.drug.status')"> | |||||
| <el-select | |||||
| v-model="searchForm.status" | |||||
| :placeholder="$t('form.placeholderSelect')" | |||||
| clearable | |||||
| style="width: 100px" | |||||
| @change="search" | |||||
| > | |||||
| <el-option :label="$t('page.business.study.drug.statusCg')" :value="1" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusSyz')" :value="3" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusYsd')" :value="5" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusDgd')" :value="7" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusGd')" :value="9" /> | |||||
| <el-option :label="$t('page.business.study.drug.statusDjd')" :value="10" /> | |||||
| </el-select> | |||||
| </el-form-item> | |||||
| <el-form-item prop="leaderName" :label="$t('page.business.study.drug.leader')"> | |||||
| <el-input v-model="searchForm.leaderName" :placeholder="$t('form.placeholderInput')" clearable style="width: 150px" @keyup.enter.native="search" /> | |||||
| </el-form-item> | |||||
| <div class="right-btn"> | |||||
| <el-form-item> | |||||
| <el-button type="primary" icon="el-icon-search" @click="search">{{ $t('form.search') }}</el-button> | |||||
| <el-button icon="el-icon-refresh" @click="reset">{{ $t('form.reset') }}</el-button> | |||||
| </el-form-item> | |||||
| </div> | |||||
| </el-form> | |||||
| <div class="content-box"> | |||||
| <el-row class="add-box"> | |||||
| <el-col> | |||||
| <el-button type="primary" icon="el-icon-plus" @click="edit(null)" v-hasPermi="['business:form:drug:add']">{{ $t('page.business.study.drug.add') }}</el-button> | |||||
| </el-col> | |||||
| </el-row> | |||||
| <el-table v-loading="loading" :data="list"> | |||||
| <el-table-column :label="$t('page.business.study.drug.sort')" type="index" width="50" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.name')" prop="name" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.sn')" prop="sn" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.status')" prop="status" width="100"> | |||||
| <template slot-scope="scope"> | |||||
| <span v-if="scope.row.status===1">{{$t('page.business.study.drug.statusCg')}}</span> | |||||
| <span v-if="scope.row.status===3">{{$t('page.business.study.drug.statusSyz')}}</span> | |||||
| <span v-if="scope.row.status===5">{{$t('page.business.study.drug.statusYsd')}}</span> | |||||
| <span v-if="scope.row.status===7">{{$t('page.business.study.drug.statusDgd')}}</span> | |||||
| <span v-if="scope.row.status===9">{{$t('page.business.study.drug.statusGd')}}</span> | |||||
| <span v-if="scope.row.status===10">{{$t('page.business.study.drug.statusDjd')}}</span> | |||||
| </template> | |||||
| </el-table-column> | |||||
| <el-table-column :label="$t('page.business.study.drug.borrowStatus')" prop="borrowStatus" width="100"> | |||||
| <template slot-scope="scope"> | |||||
| <span v-if="scope.row.borrowStatus===1">{{$t('page.business.study.drug.borrowStatusWjy')}}</span> | |||||
| <span v-if="scope.row.borrowStatus===5">{{$t('page.business.study.drug.borrowStatusJyz')}}</span> | |||||
| <span v-if="scope.row.borrowStatus===10">{{$t('page.business.study.drug.borrowStatusDjy')}}</span> | |||||
| </template> | |||||
| </el-table-column> | |||||
| <el-table-column :label="$t('page.business.study.drug.formCount')" align="center" prop="formCount" width="100" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.formFinishCount')" align="center" prop="formFinishCount" width="120" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.leader')" align="center" prop="leaderName" width="100" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.dept')" align="center" prop="deptName" width="120" /> | |||||
| <el-table-column :label="$t('page.business.study.drug.createDate')" align="center" prop="createTime" width="140" /> | |||||
| <el-table-column :label="$t('form.operate')" fixed="right" align="center" width="200"> | |||||
| <template slot-scope="scope"> | |||||
| <!-- 编辑 --> | |||||
| <el-button type="text" @click="edit(scope.row)" v-hasPermi="['business:form:drug:edit']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && (scope.row.status===1 || scope.row.status===3)">{{$t('page.business.study.drug.edit')}}</el-button> | |||||
| <!-- 删除 --> | |||||
| <el-button type="text" @click="del(scope.row)" v-hasPermi="['business:form:drug:remove']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===1">{{$t('page.business.study.drug.delete')}}</el-button> | |||||
| <!-- 详情 --> | |||||
| <el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:form:drug:detail']" v-if="scope.row.status===1 || scope.row.status===3 || scope.row.status===5 || (scope.row.status===9 && scope.row.borrowStatus===10)">{{$t('page.business.study.drug.detail')}}</el-button> | |||||
| <!-- 进入试验 --> | |||||
| <el-button type="text" @click="enter(scope.row)" v-hasPermi="['business:form:drug:enter']" v-if="scope.row.status===3 || scope.row.status===5 || (scope.row.status===9 && scope.row.borrowStatus===10)">{{$t('page.business.study.drug.enter')}}</el-button> | |||||
| <!-- 归档 --> | |||||
| <el-button type="text" @click="gd(scope.row)" v-hasPermi="['business:form:drug:gd']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===5">{{$t('page.business.study.drug.gd')}}</el-button> | |||||
| <!-- 解锁 --> | |||||
| <el-button type="text" @click="js(scope.row)" v-hasPermi="['business:form:drug:js']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===5">{{$t('page.business.study.drug.js')}}</el-button> | |||||
| <!-- 解档 --> | |||||
| <el-button type="text" @click="jd(scope.row)" v-hasPermi="['business:form:drug:jd']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===9 && scope.row.borrowStatus===1">{{$t('page.business.study.drug.jd')}}</el-button> | |||||
| <!-- 借阅 --> | |||||
| <el-button type="text" @click="jy(scope.row)" v-hasPermi="['business:form:drug:jy']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===9 && scope.row.borrowStatus===1">{{$t('page.business.study.drug.jy')}}</el-button> | |||||
| </template> | |||||
| </el-table-column> | |||||
| </el-table> | |||||
| <pagination | |||||
| v-show="total>0" | |||||
| :total="total" | |||||
| :page.sync="searchForm.pageNum" | |||||
| :limit.sync="searchForm.pageSize" | |||||
| @pagination="getList" | |||||
| /> | |||||
| </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.drug.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.drug.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.drug.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.drug.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> | |||||
| <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'" /> | |||||
| <Sign ref="signRef" @callback="doSign" /> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import { checkPermi, checkRole } from "@/utils/permission"; | |||||
| import { drug_list,drug_delete,drug_gd,drug_js,drug_jd,drug_jy} from "@/api/business/form/drug"; | |||||
| import Edit from './comp/edit.vue' | |||||
| import Enter from './comp/enter.vue' | |||||
| import Detail from './comp/detail.vue' | |||||
| import Sign from './comp/sign.vue' | |||||
| export default { | |||||
| name: "NonTrial", | |||||
| props:{ | |||||
| }, | |||||
| components:{ | |||||
| Edit, | |||||
| Enter, | |||||
| Detail, | |||||
| Sign | |||||
| }, | |||||
| computed: { | |||||
| }, | |||||
| filters:{ | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| userId:this.$store.getters.id, | |||||
| daterange:[], | |||||
| searchForm: { | |||||
| pageNum: 1, | |||||
| pageSize: 10, | |||||
| sn:'', | |||||
| name:'', | |||||
| leaderName:'', | |||||
| status:'', | |||||
| startDate:'', | |||||
| endDate:'', | |||||
| }, | |||||
| loading: true, | |||||
| total: 0, | |||||
| list: [], | |||||
| //线上类型list,edit。。。。 | |||||
| showType:'list', | |||||
| operate:'', | |||||
| operateRow:{}, | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.getList(); | |||||
| }, | |||||
| methods: { | |||||
| checkPermi, | |||||
| checkRole, | |||||
| getList() { | |||||
| 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] : '' | |||||
| drug_list(this.searchForm).then(response => { | |||||
| this.list = response.rows; | |||||
| this.total = response.total; | |||||
| }).finally(()=>{ | |||||
| this.loading = false; | |||||
| }) | |||||
| }, | |||||
| search() { | |||||
| this.searchForm.pageNum = 1; | |||||
| this.getList(); | |||||
| }, | |||||
| reset(){ | |||||
| this.searchForm = { | |||||
| pageNum: 1, | |||||
| pageSize: 10, | |||||
| sn:'', | |||||
| name:'', | |||||
| leaderName:'', | |||||
| status:'', | |||||
| startDate:'', | |||||
| endDate:'', | |||||
| } | |||||
| this.daterange = [] | |||||
| this.search() | |||||
| }, | |||||
| edit(row) { | |||||
| this.showType = 'edit' | |||||
| this.$refs.edit.edit(row) | |||||
| }, | |||||
| save() { | |||||
| this.showType = 'list' | |||||
| this.getList() | |||||
| }, | |||||
| enter(row){ | |||||
| this.showType = 'enter' | |||||
| this.$refs.enter.show(row) | |||||
| }, | |||||
| detail(row){ | |||||
| this.showType = 'detail' | |||||
| this.$refs.detail.show(row) | |||||
| }, | |||||
| del(row) { | |||||
| this.operate = 'del' | |||||
| this.operateRow = row | |||||
| this.$refs.signRef.show(this.$t('page.business.study.drug.scsy'),this.$t('page.business.study.drug.scsy')) | |||||
| }, | |||||
| doDel(signInfo) { | |||||
| this.$modal.loading() | |||||
| let postData = { | |||||
| study:this.operateRow, | |||||
| sign:signInfo | |||||
| } | |||||
| drug_delete(postData).then(() => { | |||||
| this.$refs.signRef.cancel() | |||||
| this.getList() | |||||
| }) | |||||
| .finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| gd(row) { | |||||
| this.operate = 'gd' | |||||
| this.operateRow = row | |||||
| this.$refs.signRef.show(this.$t('page.business.study.drug.sqgd'),this.$t('page.business.study.drug.sqgd')) | |||||
| }, | |||||
| doGd(signInfo) { | |||||
| this.$modal.loading() | |||||
| let postData = { | |||||
| study:this.operateRow, | |||||
| sign:signInfo | |||||
| } | |||||
| drug_gd(postData).then(() => { | |||||
| this.$refs.signRef.cancel() | |||||
| this.getList() | |||||
| }) | |||||
| .finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| js(row) { | |||||
| this.operate = 'js' | |||||
| this.operateRow = row | |||||
| this.$refs.signRef.show(this.$t('page.business.study.drug.jssy'),this.$t('page.business.study.drug.jssy')) | |||||
| }, | |||||
| doJs(signInfo) { | |||||
| this.$modal.loading() | |||||
| let postData = { | |||||
| study:this.operateRow, | |||||
| sign:signInfo | |||||
| } | |||||
| drug_js(postData).then(() => { | |||||
| this.$refs.signRef.cancel() | |||||
| this.getList() | |||||
| }) | |||||
| .finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| jd(row) { | |||||
| this.operate = 'jd' | |||||
| this.operateRow = row | |||||
| this.$refs.signRef.show(this.$t('page.business.study.drug.sqjd'),this.$t('page.business.study.drug.sqjd')) | |||||
| }, | |||||
| doJd(signInfo) { | |||||
| this.$modal.loading() | |||||
| let postData = { | |||||
| study:this.operateRow, | |||||
| sign:signInfo | |||||
| } | |||||
| drug_jd(postData).then(() => { | |||||
| this.$refs.signRef.cancel() | |||||
| this.getList() | |||||
| }) | |||||
| .finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| jy(row) { | |||||
| this.operate = 'jy' | |||||
| this.operateRow = row | |||||
| this.$refs.signRef.show(this.$t('page.business.study.drug.sqjy'),this.$t('page.business.study.drug.sqjy'),true) | |||||
| }, | |||||
| doJy(signInfo) { | |||||
| this.$modal.loading() | |||||
| let postData = { | |||||
| study:this.operateRow, | |||||
| sign:signInfo | |||||
| } | |||||
| drug_jy(postData).then(() => { | |||||
| this.$refs.signRef.cancel() | |||||
| this.getList() | |||||
| }) | |||||
| .finally(() => { | |||||
| this.$modal.closeLoading() | |||||
| }) | |||||
| }, | |||||
| doSign(val){ | |||||
| if(this.operate==='del'){ | |||||
| this.doDel(val) | |||||
| } | |||||
| if(this.operate==='gd'){ | |||||
| this.doGd(val) | |||||
| } | |||||
| if(this.operate==='js'){ | |||||
| this.doJs(val) | |||||
| } | |||||
| if(this.operate==='jd'){ | |||||
| this.doJd(val) | |||||
| } | |||||
| if(this.operate==='jy'){ | |||||
| this.doJy(val) | |||||
| } | |||||
| }, | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="scss" scoped> | |||||
| .study-page{ | |||||
| background: #f5f5f5; | |||||
| padding: 0; | |||||
| .content-list{ | |||||
| .search-box{ | |||||
| background: #fff; | |||||
| padding: 20px 20px 2px 20px; | |||||
| margin-bottom: 10px; | |||||
| .right-btn{ | |||||
| text-align:right | |||||
| } | |||||
| } | |||||
| .content-box{ | |||||
| background: #fff; | |||||
| padding: 20px; | |||||
| .add-box{ | |||||
| margin-bottom: 10px; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||