12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298 |
- <template>
- <div>
- <!-- d-flex flex-between -->
- <div class="" >
- <div style="text-align:right;">
- <el-form label-width="100px" :inline="true">
- <el-form-item prop="state_value">
- <el-select class="mr10" v-model="state_value" placeholder="请选择类别">
- <el-option v-for="item in type_list" :key="item.value" :label="item.label" :value="item.value"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item prop="keyword">
- <el-input placeholder="请输入搜索关键字" v-model="keyword" clearable @clear="getListData">
- </el-input>
- </el-form-item>
- <el-button type="primary" class="ml5" @click="getListData">搜索</el-button>
- <el-tooltip class="item" effect="dark" content="用户初次预览公文,需通过此按钮安转WPS预览组件。无组件支持,将出现不可预览公文情况。" placement="bottom-end">
- <el-button type="info" plain icon="el-icon-info" @click="initWpsAss" >wps组件初始化</el-button>
- </el-tooltip>
- </el-form>
- </div>
- </div>
- <div v-if="false">
- <el-table :data="applyTable" tooltip-effect="dark" v-loading="loading" style="width: 100%"
- @selection-change="handleSelectionChange" >
- <el-table-column type="selection" align="center" width="55"></el-table-column>
- <el-table-column label="序号" align="center" type="index" width="50"></el-table-column>
- <el-table-column label="类型" show-overflow-tooltip prop="lb_name" width="auto"></el-table-column>
- <el-table-column label="标题" show-overflow-tooltip prop="gw_title"></el-table-column>
- <el-table-column label="发文字号" show-overflow-tooltip >
- <template slot-scope="scope">
- {{scope.row.gw_zh}}
- </template>
- </el-table-column>
- <el-table-column label="发起人" show-overflow-tooltip prop="gw_fqr_name"></el-table-column>
- <el-table-column label="发起科室" show-overflow-tooltip prop="gw_fqks_name"></el-table-column>
- <el-table-column label="发起时间" show-overflow-tooltip prop="create_dateline"></el-table-column>
- <el-table-column label="当前步骤" >
- <template slot-scope="scope">
- {{scope.row.gw_bz!='' ? scope.row.gw_bz : '--'}}
- </template>
- </el-table-column>
- <el-table-column label="当前审核人" >
- <template slot-scope="scope">
- {{scope.row.gw_shr!='' ? scope.row.gw_shr : '--'}}
- </template>
- </el-table-column>
- <el-table-column label="状态">
- <template slot-scope="scope">
- <div :class="scope.row.gw_status_option_k=='4' ? 'red' : (scope.row.gw_status_option_k=='5' ? 'green' : '')">
- {{scope.row.gw_status}}
- </div>
- <!-- <div :class="scope.row.xm_status_option_k=='4' ? 'red' : (scope.row.xm_status_option_k=='3' ? 'blue' : ' ') ">
- {{scope.row.xm_status}}
- </div> -->
- </template>
- </el-table-column>
- <el-table-column label="操作" width="200">
- <template slot-scope="scope">
- <div v-if="scope.row.gw_status_option_k=='1'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="editShow(scope.row,'edit')">编辑</el-button>
- <el-button type="text" @click="applyCheck(scope.row)">提交</el-button>
- <el-button type="text" @click="delData(scope.row)">删除</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='2'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="editShow(scope.row,'edit')">编辑</el-button>
- <!-- <el-button type="text" @click="applyCheck(scope.row)">重新提交</el-button> -->
- <el-button type="text" @click="higSpeed(scope.row)">催办</el-button>
- <el-button type="text" @click="delData(scope.row)">删除</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='3'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- <el-button type="text" @click="higSpeed(scope.row)">催办</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='4'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- <el-button type="text" @click="editShow(scope.row,'reEdit')">重新提交</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='5'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <!-- 可拖拉table -->
- <div class="sortAbleTable" >
- <el-table :data="applyTable" row-key="gw_id" border style="width: 100%">
- <el-table-column type="selection" align="center" width="55"></el-table-column>
- <el-table-column type="index" label="序号" width="100" align="center" />
- <el-table-column
- v-for="(item, index) in colList"
- align="center"
- show-overflow-tooltip
- :key="`col_${index}`"
- :prop="dropCol[index].prop"
- :label="item.label"
- :min-width="item.minWidth"
- >
- <template v-slot="scope">
- <span v-if="dropCol[index].prop == 'date'" style="color: blue">
- {{ scope.row[dropCol[index].prop] }}
- </span>
- <span v-else-if="dropCol[index].prop == 'gw_status'" :class="scope.row.gw_status_option_k=='4' ? 'red' : (scope.row.gw_status_option_k=='5' ? 'green' : '')">
- {{ scope.row[dropCol[index].prop] }}
- </span>
- <span v-else>
- {{ scope.row[dropCol[index].prop] }}
- </span>
- </template>
- </el-table-column>
- <el-table-column label="操作" width="200">
- <template slot-scope="scope">
- <div v-if="scope.row.gw_status_option_k=='1'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="editShow(scope.row,'edit')">编辑</el-button>
- <el-button type="text" @click="applyCheck(scope.row)">提交</el-button>
- <el-button type="text" @click="delData(scope.row)">删除</el-button>
- <el-button type="text" @click="downloadFj(scope.row)" v-if="scope.row.gw_fj">下载附件</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='2'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="editShow(scope.row,'edit')">编辑</el-button>
- <el-button type="text" @click="higSpeed(scope.row)" :disabled="buttonDisabled_cb">催办</el-button>
- <el-button type="text" @click="delData(scope.row)">删除</el-button>
- <el-button type="text" @click="downloadFj(scope.row)" v-if="scope.row.gw_fj">下载附件</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='3'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- <el-button type="text" @click="higSpeed(scope.row)" :disabled="buttonDisabled_cb">催办</el-button>
- <el-button type="text" @click="downloadFj(scope.row)" v-if="scope.row.gw_fj">下载附件</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='4'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- <!-- <el-button type="text" @click="editShow(scope.row,'reEdit')">重新提交</el-button> -->
- <el-button type="text" @click="applyCheck(scope.row)">重新提交</el-button>
- <el-button type="text" @click="downloadFj(scope.row)" v-if="scope.row.gw_fj">下载附件</el-button>
- </div>
- <div v-if="scope.row.gw_status_option_k=='5'">
- <el-button type="text" @click="reviewShow(scope.row)">预览</el-button>
- <el-button type="text" @click="checkRecord(scope.row)">审批记录</el-button>
- <el-button type="text" @click="downloadFj(scope.row)" v-if="scope.row.gw_fj">下载附件</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <footer class="flex-item-none" style="display: flex; justify-content: flex-end; margin-top: 30px">
- <el-pagination background layout="total,prev, pager, next" :page-size="limit" :total="total"
- :current-page.sync="cur_page" @current-change="handleCurrentChange"></el-pagination>
- </footer>
- </div>
- <!-- diglog-详情框 -->
- <el-dialog title="预览/详情" :visible.sync="dialogVisible_detail" width="210mm">
- <div>
- <div class="onlineShow" v-if="singleData.gw_ylfj_pdf">
- <iframe :src="prefixPDFUrl+singleData.gw_ylfj_pdf" v-if="singleData.gw_ylfj_pdf" style="width:100%;min-height:600px;border:0;" name="ifrmname" id="ifrmid" ></iframe>
- </div>
- <div class="posiR webDialogReview" v-else>
- <div class="titleHeader" >
- <div style="text-align:center;">
- <img src="../../../assets/images/fileTitle1.png" alt="" v-if="singleData.lb_id==1">
- <img src="../../../assets/images/fileTitle2.png" alt="" v-else-if="singleData.lb_id==2">
- <img src="../../../assets/images/fileTitle3.png" alt="" v-else-if="singleData.lb_id==3">
- <img src="../../../assets/images/fileTitle4.png" alt="" v-else-if="singleData.lb_id==4">
- <img src="../../../assets/images/fileTitle5.png" alt="" v-else-if="singleData.lb_id==5">
- <img src="../../../assets/images/fileTitle6.png" alt="" v-else>
- </div>
- <div class="secPart">{{singleData.gw_zh}}</div>
- <h3>{{singleData.gw_title}}</h3>
- <p class="GWDetail" v-html="singleData.gw_content"></p>
- </div>
- <div class="footerInfo">
- <p>景宁畲族自治县教育局</p>
- <p>{{singleData.fb_dateline}}</p>
- </div>
- <div class="reaFooter">
- <div class="reaFooter_left">{{singleData.gw_fqks_name}}</div>
- <div class="reaFooter_right">{{singleData.fb_dateline}}印发</div>
- </div>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible_detail = false">取 消</el-button>
- <el-button type="primary" @click="dialogVisible_detail = false">确 定</el-button>
- </span>
- </el-dialog>
- <!-- dialog-审批记录 -->
- <el-dialog title="审批记录" :visible.sync="dialogTableVisible_record">
- <el-table :data="gridData">
- <el-table-column label="序号" align="center" type="index" width="50"></el-table-column>
- <el-table-column property="sh_dept_name" label="步骤名称" show-overflow-tooltip></el-table-column>
- <el-table-column property="sh_user_name" label="审核人" ></el-table-column>
- <el-table-column property="modify_dateline" label="审核时间" show-overflow-tooltip></el-table-column>
- <el-table-column property="cz" label="操作" show-overflow-tooltip>
- <template slot-scope="scope">
- <div>
- {{scope.row.sh_status=='2' ? '通过' : (scope.row.sh_status=='1' ? '待处理' : '不通过')}}
- </div>
- </template>
- </el-table-column>
- <el-table-column property="sh_reason" label="处理意见"></el-table-column>
- </el-table>
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogTableVisible_record = false">取 消</el-button>
- <el-button type="primary" @click="dialogTableVisible_record = false">确 定</el-button>
- </div>
- </el-dialog>
- <!-- dialog-编辑发文拟稿 -->
- <el-dialog title="编辑发文拟稿" :visible.sync="dialogFormVisible_fwng" width="50%">
- <el-form :model="dialogForm_fwng" label-width="140px" label-position="left" ref="addForm_fwng" :rules="rules_check_fwng">
- <el-form-item label="类型" prop="lxObj">
- <el-select v-model="dialogForm_fwng.lxObj" placeholder="请选择类型" @change="switchLBData" style="width:100%;" filterable>
- <el-option v-for="item in lxLIST " :key="item.value+ Math.random()" :label="item.label"
- :value="item" >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="标题" prop="bt">
- <el-input v-model="dialogForm_fwng.bt" placeholder="请输入标题"></el-input>
- </el-form-item>
- <el-form-item label="发文字号" prop="fwzh">
- <el-input v-model="dialogForm_fwng.fwzh" placeholder="发文字号自动填充:例如:景教函〔2022〕001号" disabled>
- </el-input>
- </el-form-item>
- <el-form-item label="发起人" prop="fqrObj">
- <el-select v-model="dialogForm_fwng.fqrObj" placeholder="请选择发起人" style="width:100%;" filterable>
- <el-option v-for="item in userLIST " :key="item.value+ Math.random()" :label="item.label"
- :value="item" >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="发起科室" prop="fqksObj">
- <el-select v-model="dialogForm_fwng.fqksObj" placeholder="请选择发起科室" style="width:100%;" filterable @change="KsLinkLc">
- <el-option v-for="item in orgLIST " :key="item.value+ Math.random()" :label="item.label"
- :value="item" >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="关联流程" prop="gllcObj">
- <el-select style="width: 100%" v-model="dialogForm_fwng.gllcObj" placeholder="请选择关联流程" filterable >
- <el-option v-for="item in lcglLIST " :key="item.value+ Math.random()" :label="item.label"
- :value="{value:item.value,label:item.label}">
- </el-option>
- </el-select>
- </el-form-item>
- <!-- <el-form-item label="上传发文拟稿文件" prop="mbfj" required>
- <el-upload
- ref="Mbupload"
- v-model="dialogForm_fwng.mbfj"
- class="upload-demo"
- action="#"
- :http-request="GwmbappendixHttpRequest"
- :on-remove="GwmbhandleRemoveAppendix"
- :limit="1"
- :file-list="mbappendixList"
- accept=".doc,.docx,.wps"
- >
- <el-button size="small" type="primary">发文拟稿文件-点击上传</el-button>
- <div slot="tip" class="el-upload__tip">支持文件类型:.doc(.docx)、.wps文件格式</div>
- </el-upload>
- </el-form-item> -->
- <!-- <el-form-item label="正文" prop="zw">
- <Tinymce v-if="dialogFormVisible_fwng" v-model="dialogForm_fwng.zw" :height="300" :key="timestamp"></Tinymce>
- </el-form-item> -->
- <el-form-item label="附件" >
- <FileUpload :limit="1" v-if="dialogFormVisible_fwng" :full.sync="dialogForm_fwng.fj" :key="timestamp" >
- <div slot="tip" class="el-upload__tip">
- 支持文件类型:doc(.docx)、.ppt(.pptx)、.xls(.xlsx)、.pps、.wps、.pdf、.txt文件格式。
- </div>
- </FileUpload>
- </el-form-item>
- </el-form>
- <div slot="footer">
- <el-button @click="dialogFormVisible_fwng=false;">取 消</el-button>
- <el-button type="primary" @click="formSubmit_fwng('addForm_fwng')">确 定</el-button>
- </div>
- </el-dialog>
- <!-- WPSOA助手dialog -->
- <el-dialog title="WPS预览正文" :visible.sync="dialogFormVisible_wpsoa" width="20%">
- <div style="text-align:center;">
- <WpsLink :fileName="fileName" :filePath=filePath :readOnly=readOnly>
- <el-button type="primary" size="medium">
- <span class="d-in-block v-mid font-size-16">{{wpsOAAssisentTitle}}</span>
- </el-button>
- </WpsLink>
- </div>
- </el-dialog>
- <!--PDF预览文件dialog 显示-->
- <el-dialog title="详情" :visible.sync="dialogFormVisible_detail">
- <div v-if="pdfExist=='1'">
- <iframe :src="prefixPDFUrl+curFileShowUrl" v-if="curFileShowUrl" style="width:100%;min-height:600px;border:0;" name="ifrmname" id="ifrmid" ></iframe>
- </div>
- <div v-else>
- <iframe :src="microsoftPreview+docxPreview+pathUrl" style="width:100%;min-height:600px;border:0;" name="ifrmname" ></iframe>
- </div>
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogFormVisible_detail = false">取 消</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- import { wdfw_list, wdfw_add, wdfw_edit, wdfw_del, wdfw_detail, xmlb_list,fwng_add, gwglLcgl_List,fwng_lb_list,get_gwzh,org_list, org_users } from "./itemApi";
- import { useUserStore } from "@/stores/user";
- const { real_name, user_id, dept_ids } = useUserStore();
- import Tinymce from "@/components/TinymceVue/index.vue";
- import FileUpload from "@/components/FileUpload/index.vue";
- import WpsLink from "@/components/WpsLink/index.vue";
- import Sortable from 'sortablejs';
- import colDrap from "../../../utils/drag";
- import { getFullUrl } from "@/utils/helper";
- import { download, download2,download3} from "@/utils/request";
- export default {
- name: "xmsq",
- components: {
- Tinymce,
- FileUpload,
- WpsLink
- },
- data() {
- var validateMbfj = (rule, value, callback) => {
- if (value == '') {
- return callback(new Error('请上传发文拟稿文件'))
- } else {
- console.log('有上传附件')
- callback()
- }
- }
- return {
- state_value: "",
- keyword: "",
- /**
- * 1待提交 2已提交 3审核中 4不通过5已通过
- */
- type_list: [
- {
- label: '全部',
- value: '0'
- },{
- label: '待提交',
- value: '1'
- },{
- label: '已提交',
- value: '2'
- },{
- label: '审核中',
- value: '3'
- },{
- label: '不通过',
- value: '4'
- },{
- label: '已通过',
- value: '5'
- }
- ],
- applyTable: [],
- limit: 10,
- total: 0,
- cur_page: 1,
- xmlbLIST: [],
- orgLIST: [],
- lxLIST:[],
- userLIST:[],
- lcglLIST:[],
- dialogForm: {
- xmmc: '',
- xmlb: '',
- xmlb_id: '',
- xmly: '',
- sqks: '',
- xmys: '',
- sbsj: '',
- xmnr: '',
- xmfs: '',
- xmfj: '',
- },
- rules: {
- xmmc: [
- { required: true, message: '请输入项目名称', trigger: 'blur' }
- ],
- xmlb: [
- { required: true, message: '请选择项目类别', trigger: 'change' }
- ],
- xmly: [
- { required: true, message: '请输入项目理由', trigger: 'blur' }
- ],
- sqks: [
- { required: true, message: '请选择申请科室', trigger: 'change' }
- ],
- xmys: [
- { required: true, message: '请输入项目预算', trigger: 'blur' }
- ],
- sbsj: [
- { required: true, message: '请选择申报时间', trigger: 'change' }
- ],
- xmnr: [
- { required: true, message: '请输入项目内容', trigger: 'blur' }
- ],
- xmfs: [
- { required: true, message: '请输入项目方式', trigger: 'blur' }
- ],
- },
- money: 0,
- totalMoney: 0,
- multipleSelection: [],
- isEdit: false,
- id: "",
- loading: false,
- userList: [],
- dialogForm_check: {
- shjg: '',
- clyj: '',
- },
- rules_check: {
- shjg: [
- { required: true, message: '请选择审核结果', trigger: 'change' }
- ],
- clyj: [
- { required: true, message: '请输入处理意见', trigger: 'blur' }
- ]
- },
- xmlbId: '',
- checkID: '',
- dialogVisible_detail: false,
- dialogTableVisible_record: false,
- gridData: [],
- singleData:'',
- extraParameters:{
- api:'json',
- urltype: 2,
- fullUrlType:1,
- },
- updateUrl:window.globalVariables.api+'/upload/main/file',
- dialogFormVisible_fwng: false,
- dialogForm_fwng: {
- lxObj: '',
- bt: '',
- fwzh:'',
- fqrObj: '',
- fqksObj: '',
- gllcObj:'',
- // mbfj:'',
- zw: '',
- fj:'',
- },
- rules_check_fwng: {
- lxObj: [
- { required: true, message: '请选择类型', trigger: 'change'}
- ],
- bt: [
- { required: true, message: '请输入标题', trigger: 'blur'}
- ],
- fwzh: [
- { required: true, message: '请规范输入发文字号', trigger: 'blur'}
- ],
- fqrObj: [
- { required: true, message: '请选择发起人', trigger: 'change'}
- ],
- fqksObj: [
- { required: true, message: '请选择发起科室', trigger: 'change'}
- ],
- gllcObj:[
- {required: true, message: '请选择关联科室', trigger: 'change'}
- ],
- // mbfj: [
- // // { required: true, message: '请上传模版附件', trigger: 'blur' },
- // {validator:validateMbfj,trigger: 'change' }
- // ],
- zw: [
- { required: true, message: '请输入正文', trigger: 'blur'}
- ],
- fj:[
- { required: true, message: '请上传附件', trigger: 'blur'}
- ]
- },
- timestamp: Date.now(),
- gwId:'',
- reEdit: '',
- prefixPDFUrl: window.globalVariables.api + '/plugins/pdf.js/web/viewer2.html?file=',
- mbappendixList: [],
- fileName:'',
- filePath:'',
- readOnly:false,
- dialogFormVisible_wpsoa: false,
- wpsOAAssisentTitle:"编辑查看公文",
- dialogFormVisible_detail: false,
- curFileShowUrl: '',
- //动态列数组
- colList: [
- {
- label: "类型",
- prop: "lb_name",
- minWidth: 100,
- },
- {
- label: "标题",
- prop: "gw_title",
- minWidth: 100,
- },
- {
- label: "发文字号",
- prop: "gw_zh",
- minWidth: 100,
- },
- {
- label: "发起人",
- prop: "gw_fqr_name",
- minWidth: 100,
- },
- {
- label: "发起科室",
- prop: "gw_fqks_name",
- minWidth: 100,
- },
- {
- label: "发起时间",
- prop: "create_dateline",
- minWidth: 100,
- },
- {
- label: "当前步骤",
- prop: "gw_bz",
- minWidth: 100,
- },
- {
- label: "当前审核人",
- prop: "gw_shr",
- minWidth: 100,
- },
- {
- label: "状态",
- prop: "gw_status",
- minWidth: 100,
- },
- ],
- //拖拽列
- dropCol: [
- {
- label: "类型",
- prop: "lb_name",
- minWidth: 100,
- },
- {
- label: "标题",
- prop: "gw_title",
- minWidth: 100,
- },
- {
- label: "发文字号",
- prop: "gw_zh",
- minWidth: 100,
- },
- {
- label: "发起人",
- prop: "gw_fqr_name",
- minWidth: 100,
- },
- {
- label: "发起科室",
- prop: "gw_fqks_name",
- minWidth: 100,
- },
- {
- label: "发起时间",
- prop: "create_dateline",
- minWidth: 100,
- },
- {
- label: "当前步骤",
- prop: "gw_bz",
- minWidth: 100,
- },
- {
- label: "当前审核人",
- prop: "gw_shr",
- minWidth: 100,
- },
- {
- label: "状态",
- prop: "gw_status",
- minWidth: 100,
- },
- ],
- buttonDisabled_cb: false,
- fileFinalArr:[],
- microsoftPreview: window.globalVariables.microsoftPreview,
- docxPreview: window.globalVariables.docxPreview,
- pdfExist: "",
- pathUrl:"",
- };
- },
- mounted() {
- this.getListData();
- this.dropCol = colDrap(this.dropCol);
- },
- methods: {
- //获取用户列表
- getUserList() {
- let data = {
- dept_id: dept_ids[0],
- page: 1,
- limit: 9999
- }
- org_users(data).then(res => {
- if (res.code == 1) {
- this.userList = res.data.page_data;
- }
- })
- },
- //组织机构列表
- orgList() {
- let transObjs = {
- limit:999
- }
- org_list(transObjs)
- .then(res => {
- if (res.code == "1") {
- let singleData = res.data.page_data;
- singleData.forEach(item => {
- this.orgLIST.push({
- label: item.uo_name,
- value: item.uo_id
- })
- });
- }
- })
- .catch(err => { console.log(err) });
- },
- //开启的类别
- lbList() {
- let transObj = {
- lb_status:1
- };
- fwng_lb_list(transObj).then((res) => {
- if (res.code == "1") {
- this.lxLIST = [];
- res.data.page_data.forEach(item => {
- this.lxLIST.push({
- label: item.lb_name,
- value: item.lb_id
- })
- });
- }
- });
- },
- getListData() {
- this.loading = true;
- let transObj = {
- page: this.cur_page,
- limit: this.limit,
- keyword: this.keyword,
- gw_status: this.state_value,
- my_gw:1,
- };
- wdfw_list(transObj).then((res) => {
- this.loading = false;
- if (res.code == "1") {
- this.applyTable = res.data.page_data;
- this.cur_page = Number(res.data.page_now);
- this.total = Number(res.data.total_rows);
- }
- });
- },
- initWpsAss() {
- let installLink = window.globalVariables.installLink;
- window.open(installLink, '_blank');
- },
- //操作模块-预览
- reviewShow(item) {
- // 1待提交 2已提交 3审核中 4不通过5已通过
- let currentGWStatus = item.gw_status_option_k;
- /**
- * 公文状态 是 待提交 和 不通过的,创建人 上图 弹窗里的显示 “编辑查看公文”;
- 公文状态 是 已提交、审核中、已通过,创建人上图 弹窗里的显示 “查看公文”,打开是pdf查看;
- */
- // 预览显示
- let transObj = {
- gw_id:item.gw_id
- }
- wdfw_detail(transObj)
- .then(res => {
- if (res.code == "1") {
- this.singleData = res.data.one_info;
- this.pdfExist = item.pdf_exist;
- if (currentGWStatus == 1 || currentGWStatus == 4) {
- this.wpsOAAssisentTitle = "预览公文";
- this.readOnly = false;
- let filePath_judge = res.data.one_info.gw_content.split('|')[0];
- this.filePath = getFullUrl(filePath_judge);
- const fileName = this.filePath.split('/').pop();
- const fileExt = fileName.split('.').pop();
- this.fileName=res.data.one_info.gw_title+"."+fileExt;
- this.dialogFormVisible_wpsoa =true;
- } else {
- //打开pdf,但是PDF不一定有值
- let pdf_exist = item.pdf_exist;
- if (pdf_exist == "0") {//micrposoft 预览Word文件
- // this.$message.error('公文未填写,无法预览~');
- let appendUrl = item.gw_content.split('|')[0];
- this.pathUrl = appendUrl;
- } else {
- let appendUrl = item.gw_content.split('|')[0];
- this.filePath = getFullUrl(appendUrl);
- this.curFileShowUrl = this.filePath.replace(/\.\w+$/, '.pdf');
- }
- this.dialogFormVisible_detail = true;
- }
- }
- })
- .catch(err=>{console.log(err)})
- },
- //操作模块-编辑
- editShow(item, mark) {
- if (mark == 'edit') {
- this.reEdit = false;
- this.readOnly = true;
- }else{
- this.reEdit = true;
- }
- this.isEdit = true;
- this.userLIST = [{
- label:real_name,value:user_id
- }]
- //请求数据回填
- this.chooseID = item.xm_id;
- this.gwId = item.gw_id;
- let transObj = {
- gw_id: item.gw_id
- }
- wdfw_detail(transObj)
- .then(res => {
- if (res.code == "1") {
- let singleData = res.data.one_info;
- let linkObj = { label: singleData.gw_fqks_name, value: singleData.gw_fqks_id }
- this.KsLinkLc(linkObj);
- let appendName = singleData.gw_content.split('|')[1];
- let appendUrl=singleData.gw_content.split('|')[0];
- this.mbappendixList = [{
- name:appendName,
- url:appendUrl
- }];
- //这里是相对地址
- this.filePath = getFullUrl(appendUrl);
- this.dialogForm_fwng = {
- lxObj: { label:singleData.lb_name,value:singleData.lb_id},
- bt: singleData.gw_title,
- fwzh:singleData.gw_zh,
- fqrObj: {label:real_name,value:user_id},
- fqksObj: {label:singleData.gw_fqks_name,value:singleData.gw_fqks_id},
- gllcObj: {label:singleData.lc_name,value:singleData.lc_id},
- zw: singleData.gw_content,
- fj: singleData.gw_fj,
- };
- this.dialogFormVisible_fwng = true;
- }
- })
- .catch(err => { console.log(err) })
- this.lbList();
- // this.getUserList();
- this.orgList();
- },
- //选择类别
- switchLBData(val) {
- let transObj = {
- issubmit:1,
- lb_id: val.value,
- }
- get_gwzh(transObj)
- .then(res => {
- if (res.code == 1) {
- this.dialogForm_fwng.fwzh = res.data.data;
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- .catch(err=>{console.log(err)})
- },
- /**公文模版文件-附件上传网络请求*/
- GwmbappendixHttpRequest(param){
- const { token } = useUserStore()
- let file=param.file;
- let formData = new FormData();
- formData.append('filedata', file)
- formData.append('api',this.extraParameters.api)
- formData.append('urltype',this.extraParameters.urltype)
- formData.append('token',token);
- //发起axios请求
- let that=this;
- that.$axios({
- method: 'post',
- url: this.updateUrl,
- headers:{'Content-Type': 'multipart/form-data'},
- data: formData
- })
- .then(res=>{
- var response=res.data;
- if(response.code=="1"){//单个上传后台返回的是相对地址
- let tempArr={
- name:response.data.file_name,
- url:response.data.url
- }
- //存入appendixList列表中
- this.mbappendixList.push(tempArr);
- this.filePath =getFullUrl(response.data.url);
- //存入localhost,方便别的页面shi'yong
- this.dialogForm_fwng.mbfj = response.data.url;
- this.$message({
- message: response.msg,
- type: 'success'
- })
- }
- })
- .catch(error=>{
- console.log(error)
- })
- },
- /**公文附件-删除*/
- GwmbhandleRemoveAppendix(file, fileList) {
- var fileName=file.name;
- this.mbappendixList=this.mbappendixList.filter(item => item.name !== fileName);
- this.$refs.ruleForm.validateField('mofj');
- },
- //发文拟稿_提交
- formSubmit_fwng(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- let transObj={
- issubmit: 1,
- jdbg_gwgl_gw: {
- lb_name: this.dialogForm_fwng.lxObj.label,//类别名称
- lb_id:this.dialogForm_fwng.lxObj.value,//类别id
- gw_title: this.dialogForm_fwng.bt,// 公文名称
- gw_zh:this.dialogForm_fwng.fwzh,//发文字号(拼合)
- gw_fqr_name: this.dialogForm_fwng.fqrObj.label,//发起人姓名
- gw_fqks_name: this.dialogForm_fwng.fqksObj.label,//发起科室名称
- gw_fqks_id: this.dialogForm_fwng.fqksObj.value,//发起科室id
- // gw_content: this.dialogForm_fwng.zw,//正文
- gw_fj: this.dialogForm_fwng.fj,//公文附件
- lc_id:this.dialogForm_fwng.gllcObj.value,
- }
- }
- if (!this.isEdit) {//新增
- fwng_add(transObj)
- .then(res => {
- if (res.code == "1") {
- this.$message({
- message: res.msg,
- type: "success",
- });
- this.getListData()
- this.dialogFormVisible_fwng = false;
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- .catch(err=>{console.log(err)})
- } else {//编辑
- if (this.reEdit) {
- transObj.gw_id = this.gwId;
- transObj.jdbg_gwgl_gw.gw_status = 2;
- }else{
- transObj.gw_id = this.gwId;
- }
- wdfw_edit(transObj)
- .then(res => {
- if (res.code == "1") {
- this.$message({
- message: res.msg,
- type: "success",
- });
- this.getListData()
- this.dialogFormVisible_fwng = false;
- }
- })
- .catch(err=>{console.log(err)})
- }
- }
- })
- },
- //详情
- detailShow(item) {
- let chooseID = item.xm_id;
- this.$router.push({ name: "xmlxsb_xmsq_xq", params: { id: chooseID } });
- },
- //提交审核
- applyCheck(item) {
- let transObj = {
- issubmit: 1,
- gw_id: item.gw_id,
- jdbg_gwgl_gw: {
- gw_status: 2
- }
- }
- wdfw_edit(transObj)
- .then(res => {
- if (res.code == "1") {
- this.$message({
- message: res.msg,
- type: "success",
- });
- this.getListData();
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- .catch(err => { console.log(err) })
- },
- //审批记录
- checkRecord(item) {
- let transObj = {
- gw_id: item.gw_id
- }
- wdfw_detail(transObj)
- .then(res => {
- if (res.code == "1") {
- let singleData = res.data.one_info;
- this.gridData = res.data.one_info.shjl;
- }
- })
- .catch(err=>{console.log(err)})
- this.dialogTableVisible_record = true;
- },
- //重新拟稿
- reNG(item) {
- this.delData(item);
- },
- //删除
- delData(item) {
- let transObj = {
- gw_id: item.gw_id
- };
- this.$confirm("确认删除该申请?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- wdfw_del(transObj).then((res) => {
- if (res.code == 1) {
- this.$message({
- message: "申请删除成功!",
- type: "success",
- });
- this.getListData();
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- });
- })
- .catch(() => { });
- },
- //下载附件
- downloadFj(item) {
- let geFj=item.gw_fj
- if (geFj != '') {//字段有值
- let ifOneB = geFj.indexOf(";");
- if (ifOneB != '-1') {//能找到,不止一个附件
- let muilArr = geFj.split(';');
- let flileArr = []
- muilArr.forEach(item => {
- let secSpil = item.split('|');
- flileArr.push({
- fileUrl: getFullUrl(secSpil[0]),
- fileName: secSpil[1]
- })
- })
- this.fileFinalArr = flileArr;
- } else {//只有一个
- let singleArr = geFj.split('|');
- this.fileFinalArr = [{
- fileUrl: getFullUrl(singleArr[0]),
- fileName: singleArr[1]
- }];
- }
- } else {
- this.fileFinalArr = [];
- }
- if(this.fileFinalArr.length>1){
- console.log('附件有多个~');
- return
- }else{
- download3(this.fileFinalArr[0].fileUrl, '', this.fileFinalArr[0].fileName);
- }
- },
- //催办
- higSpeed(item) {
- //催办按钮不能重复点击
- let transObj = {
- issubmit: 1,
- gw_id: item.gw_id,
- jdbg_gwgl_gw: {
- gw_cb: 1
- }
- }
- wdfw_edit(transObj)
- .then(res => {
- if (res.code == "1") {
- this.$message({
- message: res.msg,
- type: "success",
- });
- // 禁用按钮
- this.buttonDisabled_cb = true;
- // 3 秒后启用按钮
- setTimeout(() => {
- this.buttonDisabled_cb = false;
- }, 3000);
- this.getListData();
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- .catch(err => { console.log(err) })
- },
- //打印表单
- printForm(item) {
- let chooseID = 1;
- this.$router.push({ name: "xmlxsb_xmsq_dybb", params: { id: chooseID } });
- },
- //弹出审核dialog
- myCheckSwitch(item) {
- this.checkID = item.sh_id;
- this.dialogFormVisible_check = true;
- },
- //多选
- handleSelectionChange(val) {
- this.multipleSelection = [];
- this.multipleSelection = val;
- },
- //项目类别列表数据
- xmlbList() {
- xmlb_list({})
- .then(res => {
- if (res.code == "1") {
- this.xmlbLIST = [];
- res.data.page_data.forEach(item => {
- this.xmlbLIST.push({
- label: item.lb_name,
- value: item.lb_id,
- })
- })
- }
- })
- .catch(err => {
- console.log(error)
- })
- },
- //项目立项申报
- addFormSubmit(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- this.loading = true;
- let transObj = {
- issubmit: 1,
- jdbg_xmlxsb_xmsq: {
- xm_name: this.dialogForm.xmmc,
- lb_name: this.dialogForm.xmlb.label,//类别名称
- lb_id: this.dialogForm.xmlb.value,//类别id
- xm_reason: this.dialogForm.xmly,//理由
- dept_name: this.dialogForm.sqks.label,//部门名称
- dept_id: this.dialogForm.sqks.value,//部门id
- xm_content: this.dialogForm.xmnr,//内容
- xm_file: this.dialogForm.xmfj,// 附件
- xm_type: this.dialogForm.xmfs,//项目方式
- xm_price: this.dialogForm.xmys,//预算
- xm_sbsj: this.dialogForm.sbsj,//申报时间
- xm_status: "",//状态
- xm_fp_user: "",//分配用户
- xm_is_wc: "",//是否完成1是2否
- xm_shlc: "",//审核流程
- }
- }
- console.log(transObj, "提交参数");
- if (!this.isEdit) {
- xmsq_add(transObj).then(res => {
- this.loading = false;
- if (res.code == 1) {
- this.$message({
- message: res.msg,
- type: "success",
- });
- this.dialogFormVisible = false;
- this.getListData();
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- } else {//编辑
- let transObj = {
- issubmit: 1,
- xm_id: this.chooseID,
- jdbg_xmlxsb_xmsq: {
- xm_name: this.dialogForm.xmmc,
- lb_name: this.dialogForm.xmlb,//类别名称
- lb_id: this.dialogForm.xmlb_id,//类别id
- xm_reason: this.dialogForm.xmly,//理由
- dept_name: this.dialogForm.sqks.label,//部门名称
- xm_content: this.dialogForm.xmnr,//内容
- xm_file: this.dialogForm.xmfj,// 附件
- xm_type: this.dialogForm.xmfs,//项目方式
- xm_price: this.dialogForm.xmys,//预算
- xm_sbsj: this.dialogForm.sbsj,//申报时间
- xm_status: "",//状态
- xm_fp_user: "",//分配用户
- xm_is_wc: "",//是否完成1是2否
- xm_shlc: "",//审核流程
- dept_id: "",//部门id
- }
- }
- xmsq_edit(transObj).then(res => {
- this.loading = false;
- if (res.code == 1) {
- this.$message({
- message: res.msg,
- type: "success",
- });
- this.dialogFormVisible = false;
- this.getListData();
- } else {
- this.$message({
- message: res.msg,
- type: "error",
- });
- }
- })
- }
- }
- })
- },
- //审核提交
- addFormSubmitCheck(formName) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- let transObj = {
- sh_id: this.checkID,
- sh_status: this.dialogForm_check.shjg,
- sh_reason: this.dialogForm_check.clyj,
- }
- xmsq_edit(transObj)
- .then(res => {
- if (res.code == "1") {
- this.$message({
- message: res.msg,
- type: 'success'
- });
- this.initMyApply();
- this.dialogFormVisible_check = false;
- } else {
- this.$message({
- message: res.msg,
- type: 'error'
- });
- }
- })
- .catch(err => {
- console.log(err)
- })
- }
- })
- },
- //翻页
- handleCurrentChange(val) {
- this.cur_page = val;
- this.getListData();
- },
- //点击科室找流程
- KsLinkLc(val) {
- let transObjs = {
- limit:999,
- public:1,
- lc_status: 1,
- lc_yydx:val.value,
- lc_yydx_name:val.label,
- }
- gwglLcgl_List(transObjs)
- .then(res => {
- let singleData = res.data.page_data;
- this.lcglLIST = [];
- singleData.forEach(item => {
- this.lcglLIST.push({
- label: item.lc_name,
- value: item.lc_id
- })
- })
- })
- .catch(err => { console.log(err) });
- },
- //防抖函数
- debounce(fn, delay) {
- let timer = null;
- return function() {
- clearTimeout(timer);
- timer = setTimeout(() => {
- fn.apply(this, arguments);
- }, delay);
- }
- }
- },
- };
- </script>
- <style scoped>
- @import url("@/styles/documentOnlineRev.scss");
- .red {
- color: red;
- }
- .blue {
- color: #4351FF;
- }
- .green{
- color:green;
- }
- .onlineShow{
- min-height:400px;
- }
- </style>
|