| @ -0,0 +1,84 @@ | |||
| import request from '@/utils/request' | |||
| export function nonTrial_list(query) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/list', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| export function nonTrial_info(query) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/info', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| export function nonTrial_save(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/save', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_delete(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/delete', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_jcgjList(query) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/jcgjList', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| export function nonTrial_gd(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/gd', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_checkSd(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/checkSd', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_sd(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/sd', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_js(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/js', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_jd(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/jd', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| export function nonTrial_jy(data) { | |||
| return request({ | |||
| url: '/system/business/nonTrial/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.nonTrial.detail')}} | |||
| </div> | |||
| </div> | |||
| <!-- <div class="detail-title"><img src="@/assets/images/detail-title.png" >{{ $t('page.business.study.nonTrial.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.nonTrial.jbxx') }}</div> | |||
| </div> | |||
| <div class="pal"> | |||
| <div class="left"> | |||
| <div class="left-title">{{ $t('page.business.study.nonTrial.name') }}</div> | |||
| <el-input type="text" :value="form.name" maxlength="50" disabled /> | |||
| </div> | |||
| <div class="right"> | |||
| <div class="right-title">{{ $t('page.business.study.nonTrial.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.nonTrial.bdsl') }}</div> | |||
| <el-input type="text" :value="form.formCount" maxlength="50" disabled /> | |||
| </div> | |||
| <div class="right"> | |||
| <div class="right-title">{{ $t('page.business.study.nonTrial.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.nonTrial.createDate') }}</div> | |||
| <el-input type="text" :value="form.createTime" maxlength="50" disabled /> | |||
| </div> | |||
| <div class="right"> | |||
| <div class="right-title">{{ $t('page.business.study.nonTrial.status') }}</div> | |||
| <el-select v-model="form.status" disabled style="width: 100%;"> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusCg')" :value="1" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusSyz')" :value="3" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusYsd')" :value="5" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusDgd')" :value="7" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusGd')" :value="9" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusDjd')" :value="10" /> | |||
| </el-select> | |||
| </div> | |||
| </div> | |||
| <div class="pal"> | |||
| <div class="left"> | |||
| <div class="left-title">{{ $t('page.business.study.nonTrial.borrowStatus') }}</div> | |||
| <el-select v-model="form.borrowStatus" disabled style="width: 100%;"> | |||
| <el-option :label="$t('page.business.study.nonTrial.borrowStatusWjy')" :value="1" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.borrowStatusJyz')" :value="5" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.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.nonTrial.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.nonTrial.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 { nonTrial_info, nonTrial_jcgjList } from "@/api/business/form/nonTrial" | |||
| 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 | |||
| nonTrial_jcgjList(_.merge({}, this.queryJcgjParams, val)).then(response => { | |||
| this.jcgjList = response.rows | |||
| this.jcgjTotal = response.total | |||
| this.$refs.jcgjList.init(this.jcgjList) | |||
| }) | |||
| }, | |||
| getJjcgjList() { | |||
| nonTrial_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 | |||
| nonTrial_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.nonTrial.create')}}</div> | |||
| </div> | |||
| <div class="right-top"> | |||
| <el-button @click="cancel()">{{$t('page.business.study.nonTrial.cancel')}}</el-button> | |||
| <el-button type="primary" @click="save(1)" plain v-if="!infoDialog.formData.status || infoDialog.formData.status===1">{{$t('page.business.study.nonTrial.save')}}</el-button> | |||
| <el-button type="primary" @click="save(3)">{{$t('page.business.study.nonTrial.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.nonTrial.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.nonTrial.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.nonTrial.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.nonTrial.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 { nonTrial_info,nonTrial_save} from "@/api/business/form/nonTrial"; | |||
| 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.nonTrial.inputName'), trigger: "blur" } | |||
| ], | |||
| sn: [ | |||
| { required: true, message: this.$t('page.business.study.nonTrial.inputSn'), trigger: "blur" } | |||
| ], | |||
| leader: [ | |||
| { required: true, message: this.$t('page.business.study.nonTrial.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() | |||
| nonTrial_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.nonTrial.submit'),this.$t('page.business.study.nonTrial.create')) | |||
| }else{ | |||
| this.doSave({}) | |||
| } | |||
| } | |||
| }) | |||
| }, | |||
| doSign(val){ | |||
| this.doSave(val) | |||
| }, | |||
| doSave(sign) { | |||
| this.$modal.loading() | |||
| nonTrial_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"/> | |||
| <syff v-if="active === 'syff'" :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 syff from './syff.vue' | |||
| import wzlb from './wzlb.vue' | |||
| export default { | |||
| name: 'StudyEnter', | |||
| props: {}, | |||
| components: { ytbd, tbbd ,syff,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: 'wzlb', name: this.$t('page.business.study.studyEnter.wzlb') }, | |||
| { key: 'syff', name: this.$t('page.business.study.studyEnter.pzfflb') } | |||
| ], | |||
| 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.study.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,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.nonTrial.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.nonTrial.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.nonTrial.dateRange')"> | |||
| <el-date-picker v-model="daterange" clearable type="daterange" range-separator="-" :start-placeholder="$t('page.business.study.nonTrial.startDate')" | |||
| :end-placeholder="$t('page.business.study.nonTrial.endDate')" value-format="yyyy-MM-dd" @change="search" style="width: 220px" /> | |||
| </el-form-item> | |||
| <el-form-item prop="status" :label="$t('page.business.study.nonTrial.status')"> | |||
| <el-select | |||
| v-model="searchForm.status" | |||
| :placeholder="$t('form.placeholderSelect')" | |||
| clearable | |||
| style="width: 100px" | |||
| @change="search" | |||
| > | |||
| <el-option :label="$t('page.business.study.nonTrial.statusCg')" :value="1" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusSyz')" :value="3" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusYsd')" :value="5" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusDgd')" :value="7" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusGd')" :value="9" /> | |||
| <el-option :label="$t('page.business.study.nonTrial.statusDjd')" :value="10" /> | |||
| </el-select> | |||
| </el-form-item> | |||
| <el-form-item prop="leaderName" :label="$t('page.business.study.nonTrial.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:nonTrial:add']">{{ $t('page.business.study.nonTrial.add') }}</el-button> | |||
| </el-col> | |||
| </el-row> | |||
| <el-table v-loading="loading" :data="list"> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.sort')" type="index" width="50" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.name')" prop="name" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.sn')" prop="sn" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.status')" prop="status" width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.status===1">{{$t('page.business.study.nonTrial.statusCg')}}</span> | |||
| <span v-if="scope.row.status===3">{{$t('page.business.study.nonTrial.statusSyz')}}</span> | |||
| <span v-if="scope.row.status===5">{{$t('page.business.study.nonTrial.statusYsd')}}</span> | |||
| <span v-if="scope.row.status===7">{{$t('page.business.study.nonTrial.statusDgd')}}</span> | |||
| <span v-if="scope.row.status===9">{{$t('page.business.study.nonTrial.statusGd')}}</span> | |||
| <span v-if="scope.row.status===10">{{$t('page.business.study.nonTrial.statusDjd')}}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.borrowStatus')" prop="borrowStatus" width="100"> | |||
| <template slot-scope="scope"> | |||
| <span v-if="scope.row.borrowStatus===1">{{$t('page.business.study.nonTrial.borrowStatusWjy')}}</span> | |||
| <span v-if="scope.row.borrowStatus===5">{{$t('page.business.study.nonTrial.borrowStatusJyz')}}</span> | |||
| <span v-if="scope.row.borrowStatus===10">{{$t('page.business.study.nonTrial.borrowStatusDjy')}}</span> | |||
| </template> | |||
| </el-table-column> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.formCount')" align="center" prop="formCount" width="100" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.formFinishCount')" align="center" prop="formFinishCount" width="120" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.leader')" align="center" prop="leaderName" width="100" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.dept')" align="center" prop="deptName" width="120" /> | |||
| <el-table-column :label="$t('page.business.study.nonTrial.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:nonTrial:edit']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && (scope.row.status===1 || scope.row.status===3)">{{$t('page.business.study.nonTrial.edit')}}</el-button> | |||
| <!-- 删除 --> | |||
| <el-button type="text" @click="del(scope.row)" v-hasPermi="['business:form:nonTrial:remove']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===1">{{$t('page.business.study.nonTrial.delete')}}</el-button> | |||
| <!-- 详情 --> | |||
| <el-button type="text" @click="detail(scope.row)" v-hasPermi="['business:form:nonTrial: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.nonTrial.detail')}}</el-button> | |||
| <!-- 进入试验 --> | |||
| <el-button type="text" @click="enter(scope.row)" v-hasPermi="['business:form:nonTrial:enter']" v-if="scope.row.status===3 || scope.row.status===5 || (scope.row.status===9 && scope.row.borrowStatus===10)">{{$t('page.business.study.nonTrial.enter')}}</el-button> | |||
| <!-- 归档 --> | |||
| <el-button type="text" @click="gd(scope.row)" v-hasPermi="['business:form:nonTrial:gd']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===5">{{$t('page.business.study.nonTrial.gd')}}</el-button> | |||
| <!-- 解锁 --> | |||
| <el-button type="text" @click="js(scope.row)" v-hasPermi="['business:form:nonTrial:js']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===5">{{$t('page.business.study.nonTrial.js')}}</el-button> | |||
| <!-- 解档 --> | |||
| <el-button type="text" @click="jd(scope.row)" v-hasPermi="['business:form:nonTrial:jd']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===9 && scope.row.borrowStatus===1">{{$t('page.business.study.nonTrial.jd')}}</el-button> | |||
| <!-- 借阅 --> | |||
| <el-button type="text" @click="jy(scope.row)" v-hasPermi="['business:form:nonTrial:jy']" v-if="(scope.row.leader==userId || checkRole(['TFM'])) && scope.row.status===9 && scope.row.borrowStatus===1">{{$t('page.business.study.nonTrial.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.nonTrial.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.nonTrial.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.nonTrial.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.nonTrial.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 { nonTrial_list,nonTrial_delete,nonTrial_gd,nonTrial_js,nonTrial_jd,nonTrial_jy} from "@/api/business/form/nonTrial"; | |||
| 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] : '' | |||
| nonTrial_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.nonTrial.scsy'),this.$t('page.business.study.nonTrial.scsy')) | |||
| }, | |||
| doDel(signInfo) { | |||
| this.$modal.loading() | |||
| let postData = { | |||
| study:this.operateRow, | |||
| sign:signInfo | |||
| } | |||
| nonTrial_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.nonTrial.sqgd'),this.$t('page.business.study.nonTrial.sqgd')) | |||
| }, | |||
| doGd(signInfo) { | |||
| this.$modal.loading() | |||
| let postData = { | |||
| study:this.operateRow, | |||
| sign:signInfo | |||
| } | |||
| nonTrial_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.nonTrial.jssy'),this.$t('page.business.study.nonTrial.jssy')) | |||
| }, | |||
| doJs(signInfo) { | |||
| this.$modal.loading() | |||
| let postData = { | |||
| study:this.operateRow, | |||
| sign:signInfo | |||
| } | |||
| nonTrial_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.nonTrial.sqjd'),this.$t('page.business.study.nonTrial.sqjd')) | |||
| }, | |||
| doJd(signInfo) { | |||
| this.$modal.loading() | |||
| let postData = { | |||
| study:this.operateRow, | |||
| sign:signInfo | |||
| } | |||
| nonTrial_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.nonTrial.sqjy'),this.$t('page.business.study.nonTrial.sqjy'),true) | |||
| }, | |||
| doJy(signInfo) { | |||
| this.$modal.loading() | |||
| let postData = { | |||
| study:this.operateRow, | |||
| sign:signInfo | |||
| } | |||
| nonTrial_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> | |||