index.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. :inline="true"
  7. v-show="showSearch"
  8. label-width="68px"
  9. >
  10. <el-form-item label="文件名称" prop="name">
  11. <el-input
  12. v-model="queryParams.name"
  13. placeholder="请输入文件名称"
  14. clearable
  15. size="small"
  16. @keyup.enter.native="handleQuery"
  17. />
  18. </el-form-item>
  19. <!-- <el-form-item label="类型" prop="type">
  20. <el-select v-model="queryParams.type" placeholder="请选择类型" clearable size="small">
  21. <el-option label="请选择字典生成" value />
  22. </el-select>
  23. </el-form-item>-->
  24. <!-- <el-form-item label="大小" prop="size">
  25. <el-input
  26. v-model="queryParams.size"
  27. placeholder="请输入大小"
  28. clearable
  29. size="small"
  30. @keyup.enter.native="handleQuery"
  31. />
  32. </el-form-item>
  33. <el-form-item label="单位ID" prop="unitId">
  34. <el-input
  35. v-model="queryParams.unitId"
  36. placeholder="请输入单位ID"
  37. clearable
  38. size="small"
  39. @keyup.enter.native="handleQuery"
  40. />
  41. </el-form-item>-->
  42. <!-- <el-form-item label="单位名称" prop="unitName">
  43. <el-input
  44. v-model="queryParams.unitName"
  45. placeholder="请输入单位名称"
  46. clearable
  47. size="small"
  48. @keyup.enter.native="handleQuery"
  49. />
  50. </el-form-item>
  51. <el-form-item label="级别" prop="levelM">
  52. <el-input
  53. v-model="queryParams.levelM"
  54. placeholder="请输入级别"
  55. clearable
  56. size="small"
  57. @keyup.enter.native="handleQuery"
  58. />
  59. </el-form-item>-->
  60. <!-- <el-form-item label="发送人ID" prop="sendId">
  61. <el-input
  62. v-model="queryParams.sendId"
  63. placeholder="请输入发送人ID"
  64. clearable
  65. size="small"
  66. @keyup.enter.native="handleQuery"
  67. />
  68. </el-form-item>
  69. <el-form-item label="发送人" prop="sendName">
  70. <el-input
  71. v-model="queryParams.sendName"
  72. placeholder="请输入发送人"
  73. clearable
  74. size="small"
  75. @keyup.enter.native="handleQuery"
  76. />
  77. </el-form-item>
  78. <el-form-item label="创建时间" prop="creattime">
  79. <el-date-picker clearable size="small"
  80. v-model="queryParams.creattime"
  81. type="date"
  82. value-format="yyyy-MM-dd"
  83. placeholder="选择创建时间">
  84. </el-date-picker>
  85. </el-form-item>
  86. <el-form-item label="更新时间" prop="updatetime">
  87. <el-date-picker clearable size="small"
  88. v-model="queryParams.updatetime"
  89. type="date"
  90. value-format="yyyy-MM-dd"
  91. placeholder="选择更新时间">
  92. </el-date-picker>
  93. </el-form-item>
  94. <el-form-item label="打印说明" prop="explainInfo">
  95. <el-input
  96. v-model="queryParams.explainInfo"
  97. placeholder="请输入打印说明"
  98. clearable
  99. size="small"
  100. @keyup.enter.native="handleQuery"
  101. />
  102. </el-form-item>
  103. <el-form-item label="打印状态(1 打印中 2 已打印)" prop="printStatus">
  104. <el-select v-model="queryParams.printStatus" placeholder="请选择打印状态(1 打印中 2 已打印)" clearable size="small">
  105. <el-option label="请选择字典生成" value="" />
  106. </el-select>
  107. </el-form-item>
  108. <el-form-item label="接收人ID" prop="receiveId">
  109. <el-input
  110. v-model="queryParams.receiveId"
  111. placeholder="请输入接收人ID"
  112. clearable
  113. size="small"
  114. @keyup.enter.native="handleQuery"
  115. />
  116. </el-form-item>
  117. <el-form-item label="接收人" prop="receiveName">
  118. <el-input
  119. v-model="queryParams.receiveName"
  120. placeholder="请输入接收人"
  121. clearable
  122. size="small"
  123. @keyup.enter.native="handleQuery"
  124. />
  125. </el-form-item>
  126. <el-form-item label="打印回复信息" prop="printInfo">
  127. <el-input
  128. v-model="queryParams.printInfo"
  129. placeholder="请输入打印回复信息"
  130. clearable
  131. size="small"
  132. @keyup.enter.native="handleQuery"
  133. />
  134. </el-form-item>-->
  135. <el-form-item>
  136. <el-button type="primary" icon="el-icon-search" size="btn" @click="handleQuery">搜索</el-button>
  137. <el-button icon="el-icon-refresh" size="btr" @click="resetQuery">重置</el-button>
  138. </el-form-item>
  139. </el-form>
  140. <el-row :gutter="10" class="mb8">
  141. <el-col :span="1.5">
  142. <el-button
  143. type="primary"
  144. plain
  145. size="mini"
  146. @click="handleAdd"
  147. v-hasPermi="['PrintsManage:manage:add']"
  148. >发送文件</el-button>
  149. </el-col>
  150. <!-- <el-col :span="1.5">
  151. <el-button
  152. type="success"
  153. plain
  154. icon="el-icon-edit"
  155. size="mini"
  156. :disabled="single"
  157. @click="handleUpdate"
  158. v-hasPermi="['PrintsManage:manage:edit']"
  159. >修改</el-button>
  160. </el-col>-->
  161. <el-col :span="1.5">
  162. <el-button
  163. type="danger"
  164. plain
  165. icon="el-icon-delete"
  166. size="mini"
  167. :disabled="multiple"
  168. @click="handleDelete"
  169. v-hasPermi="['PrintsManage:manage:remove']"
  170. >删除</el-button>
  171. </el-col>
  172. <!-- <el-col :span="1.5">
  173. <el-button
  174. type="warning"
  175. plain
  176. icon="el-icon-download"
  177. size="mini"
  178. :loading="exportLoading"
  179. @click="handleExport"
  180. v-hasPermi="['PrintsManage:manage:export']"
  181. >导出</el-button>
  182. </el-col>-->
  183. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  184. </el-row>
  185. <el-table
  186. v-loading="loading"
  187. :header-cell-style="{ background: '#003C69', color: 'white' }"
  188. :data="manageList"
  189. @selection-change="handleSelectionChange"
  190. >
  191. <el-table-column type="selection" width="55" align="center" />
  192. <!-- <el-table-column label="打印回复信息" align="center" prop="id" /> -->
  193. <el-table-column label="序号" align="center" type="index" />
  194. <el-table-column label="文件名称" align="center" prop="name" />
  195. <!-- <el-table-column label="路径" align="center" prop="file" /> -->
  196. <el-table-column label="类型" align="center" prop="type" />
  197. <el-table-column label="是否彩打" align="center" prop="isPrintColor">
  198. <template slot-scope="scope">
  199. <span>{{scope.row.isPrintColor==0?'否':'是'}}</span>
  200. </template>
  201. </el-table-column>
  202. <el-table-column label="是否双面打" align="center" prop="isPrintTwo">
  203. <template slot-scope="scope">
  204. <span>{{scope.row.isPrintTwo==0?'否':'是'}}</span>
  205. </template>
  206. </el-table-column>
  207. <el-table-column label="打印状态" align="center" prop="printStatus">
  208. <template slot-scope="scope">
  209. <span style="color: #90da90;" v-if="scope.row.printStatus==1">打印中</span>
  210. <span style="color: #00FF00;" v-if="scope.row.printStatus==2">已打印</span>
  211. </template>
  212. </el-table-column>
  213. <!-- <el-table-column label="大小" align="center" prop="size" /> -->
  214. <!-- <el-table-column label="单位ID" align="center" prop="unitId" /> -->
  215. <!-- <el-table-column label="单位名称" align="center" prop="unitName" /> -->
  216. <el-table-column label="级别" align="center" prop="levelM">
  217. <template slot-scope="scope">
  218. <dict-tag :options="dict.type.level" :value="scope.row.levelM" />
  219. </template>
  220. </el-table-column>
  221. <!-- <el-table-column label="发送人ID" align="center" prop="sendId" /> -->
  222. <el-table-column label="发送人" align="center" prop="sendName" />
  223. <!-- <el-table-column label="创建时间" align="center" prop="creattime" width="180">
  224. <template slot-scope="scope">
  225. <span>{{ parseTime(scope.row.creattime, "{y}-{m}-{d}") }}</span>
  226. </template>
  227. </el-table-column>-->
  228. <!-- <el-table-column label="更新时间" align="center" prop="updatetime" width="180">
  229. <template slot-scope="scope">
  230. <span>{{ parseTime(scope.row.updatetime, '{y}-{m}-{d}') }}</span>
  231. </template>
  232. </el-table-column>-->
  233. <!-- <el-table-column label="打印说明" align="center" prop="explainInfo" />
  234. <el-table-column label="接收人ID" align="center" prop="receiveId" />
  235. <el-table-column label="接收人" align="center" prop="receiveName" />
  236. <el-table-column label="生成路径" align="center" prop="sFile" />
  237. <el-table-column label="打印回复信息" align="center" prop="printInfo" />-->
  238. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  239. <template slot-scope="scope">
  240. <el-button
  241. size="btk"
  242. type="text"
  243. v-if="scope.row.printStatus==1"
  244. @click="handlePrint(scope.row)"
  245. >打印</el-button>
  246. <el-button
  247. size="btu"
  248. type="text"
  249. @click="handleUpdate(scope.row)"
  250. v-hasPermi="['PrintsManage:manage:edit']"
  251. >修改</el-button>
  252. <el-button
  253. size="btd"
  254. type="text"
  255. @click="handleDelete(scope.row)"
  256. v-hasPermi="['PrintsManage:manage:remove']"
  257. >删除</el-button>
  258. </template>
  259. </el-table-column>
  260. </el-table>
  261. <pagination
  262. v-show="total > 0"
  263. :total="total"
  264. :page.sync="queryParams.pageNum"
  265. :limit.sync="queryParams.pageSize"
  266. @pagination="getList"
  267. />
  268. <!-- 添加或修改集中文印主对话框 -->
  269. <el-dialog :title="title" :visible.sync="open" width="1030px" append-to-body :close-on-click-modal="false">
  270. <el-form ref="form" :model="form" :inline="true" :rules="rules" label-width="120px">
  271. <div class="jiben">发送人信息</div>
  272. <el-form-item label="发送人" prop="sendName">
  273. <el-input v-model="form.sendName" disabled placeholder="请输入发送人" />
  274. </el-form-item>
  275. <div class="jiben">文件信息</div>
  276. <el-form-item label="上传文件">
  277. <!-- <fileUpload v-model="form.file" /> -->
  278. <el-upload
  279. :action="uploadFileUrl"
  280. :before-upload="handleBeforeUpload"
  281. :file-list="fileList"
  282. :limit="limit"
  283. :on-error="handleUploadError"
  284. :on-exceed="handleExceed"
  285. :on-success="handleUploadSuccess"
  286. :show-file-list="false"
  287. :headers="headers"
  288. class="upload-file-uploader"
  289. ref="upload"
  290. style="width:200px;"
  291. name="pfile"
  292. >
  293. <!-- 上传按钮 -->
  294. <el-button size="mini" type="primary" class="select_file">选取文件</el-button>
  295. </el-upload>
  296. </el-form-item>
  297. <el-form-item label="文件名称" prop="name">
  298. <el-input v-model="form.name" placeholder="请输入文件名称" />
  299. </el-form-item>
  300. <el-form-item label="打印份数" prop="printNumber">
  301. <el-input v-model="form.printNumber" :min="0" placeholder="请输入打印份数" />
  302. </el-form-item>
  303. <el-form-item label="文件大小" prop="size">
  304. <el-input v-model="form.size" placeholder="请输入文件大小" />
  305. </el-form-item>
  306. <!-- <el-form-item label="单位ID" prop="unitId">
  307. <el-input v-model="form.unitId" placeholder="请输入单位ID" />
  308. </el-form-item>-->
  309. <!-- <el-form-item label="单位名称" prop="unitName">
  310. <el-input v-model="form.unitName" placeholder="请输入单位名称" />
  311. </el-form-item>-->
  312. <el-form-item label="文件类型" prop="type">
  313. <el-input v-model="form.type" placeholder="请输入文件类型" />
  314. <!-- <el-select v-model="form.type" placeholder="请选择类型">
  315. <el-option label="请选择字典生成" value />
  316. </el-select>-->
  317. </el-form-item>
  318. <el-form-item label="级别" prop="levelM">
  319. <el-select v-model="form.levelM" clearable placeholder="请选择级别">
  320. <el-option
  321. v-for="dict in levelMs"
  322. :key="dict.dictValue"
  323. :label="dict.dictLabel"
  324. :value="parseInt(dict.dictValue)"
  325. ></el-option>
  326. </el-select>
  327. </el-form-item>
  328. <!-- <el-form-item label="是否需要归还" prop="isReturn">
  329. <el-radio-group v-model="form.isReturn" style="width:200px;" size="mini">
  330. <el-radio label="1">归还</el-radio>
  331. <el-radio label="0">无需归还</el-radio>
  332. </el-radio-group>
  333. </el-form-item>-->
  334. <el-form-item label="是否为彩打" prop="isPrintColor">
  335. <el-radio-group v-model="form.isPrintColor" style="width:200px;" size="mini">
  336. <el-radio label="1">是</el-radio>
  337. <el-radio label="0">否</el-radio>
  338. </el-radio-group>
  339. </el-form-item>
  340. <el-form-item label="是否为双面打" prop="isPrintTwo">
  341. <el-radio-group v-model="form.isPrintTwo" style="width:200px;" size="mini">
  342. <el-radio label="1">是</el-radio>
  343. <el-radio label="0">否</el-radio>
  344. </el-radio-group>
  345. </el-form-item>
  346. <!-- <el-form-item label="发送人ID" prop="sendId">
  347. <el-input v-model="form.sendId" placeholder="请输入发送人ID" />
  348. </el-form-item>-->
  349. <!-- <el-form-item label="创建时间" prop="creattime">
  350. <el-date-picker
  351. clearable
  352. size="small"
  353. v-model="form.creattime"
  354. type="date"
  355. value-format="yyyy-MM-dd"
  356. placeholder="选择创建时间"
  357. ></el-date-picker>
  358. </el-form-item>-->
  359. <div class="jiben">打印说明</div>
  360. <el-form-item label prop="explainInfo">
  361. <el-input
  362. v-model="form.explainInfo"
  363. type="textarea"
  364. placeholder="请输入打印说明"
  365. class="textarea-explainInfo"
  366. />
  367. </el-form-item>
  368. <!-- <el-form-item label="打印状态(1 打印中 2 已打印)">
  369. <el-radio-group v-model="form.printStatus">
  370. <el-radio label="1">请选择字典生成</el-radio>
  371. </el-radio-group>
  372. </el-form-item>
  373. <el-form-item label="接收人ID" prop="receiveId">
  374. <el-input v-model="form.receiveId" placeholder="请输入接收人ID" />
  375. </el-form-item>
  376. <el-form-item label="接收人" prop="receiveName">
  377. <el-input v-model="form.receiveName" placeholder="请输入接收人" />
  378. </el-form-item>
  379. <el-form-item label="生成路径">
  380. <fileUpload v-model="form.sFile" />
  381. </el-form-item>
  382. <el-form-item label="打印回复信息" prop="printInfo">
  383. <el-input v-model="form.printInfo" placeholder="请输入打印回复信息" />
  384. </el-form-item>-->
  385. </el-form>
  386. <div slot="footer" class="dialog-footer">
  387. <el-button type="primary" @click="submitForm">确 定</el-button>
  388. <el-button @click="cancel">取 消</el-button>
  389. </div>
  390. </el-dialog>
  391. <el-dialog
  392. :title="title"
  393. :visible.sync="dyopen"
  394. append-to-body
  395. width="700px"
  396. style="padding-top:100px;"
  397. :close-on-click-modal="false"
  398. >
  399. <el-form ref="dyform" :model="dyform" :inline="true" :rules="rules" label-width="120px">
  400. <div class="jiben jiben2">打印信息</div>
  401. <el-form-item label="打印文件" prop="printName">
  402. <el-input v-model="dyform.printName" placeholder="请输入打印文件" />
  403. </el-form-item>
  404. <el-form-item label="打印份数" prop="printNumber">
  405. <el-input v-model="dyform.printNumber" :min="0" placeholder="请输入打印份数" />
  406. </el-form-item>
  407. <el-form-item label="是否需要归还" prop="isReturn">
  408. <el-radio-group v-model="dyform.isReturn" style="width:200px;" size="mini">
  409. <el-radio label="1">归还</el-radio>
  410. <el-radio label="0">无需归还</el-radio>
  411. </el-radio-group>
  412. </el-form-item>
  413. <!-- <el-form-item label="是否为彩打" prop="isPrintColor">
  414. <el-radio-group v-model="dyform.isPrintColor" style="width:200px;" size="mini">
  415. <el-radio label="1">是</el-radio>
  416. <el-radio label="0">否</el-radio>
  417. </el-radio-group>
  418. </el-form-item>
  419. <el-form-item label="是否为双面打" prop="isPrintTwo">
  420. <el-radio-group v-model="dyform.isPrintTwo" style="width:200px;" size="mini">
  421. <el-radio label="1">是</el-radio>
  422. <el-radio label="0">否</el-radio>
  423. </el-radio-group>
  424. </el-form-item>-->
  425. <!-- <div class="jiben">打印人信息</div> -->
  426. <el-form-item label="打印人" prop="printfileName">
  427. <el-select v-model="dyform.printfileName" filterable clearable placeholder="请选择打印人">
  428. <el-option v-for="item in rylist" :key="item.id" :label="item.name" :value="item.id"></el-option>
  429. </el-select>
  430. </el-form-item>
  431. <div class="jiben jiben2">打印说明</div>
  432. <div
  433. style="width:98.5%;height:45px;font-size:14px;line-height:45px;color:#fff;border-bottom:1px solid #fff;margin-bottom:20px;padding-left:15px;"
  434. >其他要求:{{yaoqiu}}</div>
  435. <el-form-item label prop="explainInfo">
  436. <el-input
  437. v-model="dyform.explainInfo"
  438. type="textarea"
  439. placeholder="请输入打印说明"
  440. class="dyform-textarea"
  441. />
  442. </el-form-item>
  443. </el-form>
  444. <div slot="footer" class="dialog-footer">
  445. <el-button type="primary" @click="dysubmitForm">打 印</el-button>
  446. <el-button @click="dycancel">取 消</el-button>
  447. </div>
  448. </el-dialog>
  449. <!-- <el-dialog
  450. :title="title"
  451. :visible.sync="dyopen2"
  452. append-to-body
  453. width="1500px"
  454. style="padding-top:100px;"
  455. >
  456. <div ref="file" v-html="tableau" style="width:100%;"></div>
  457. </el-dialog> -->
  458. </div>
  459. </template>
  460. <script>
  461. import {
  462. listManage,
  463. getManage,
  464. delManage,
  465. addManage,
  466. updateManage,
  467. exportManage,
  468. printFile,
  469. listPeople,
  470. printCode
  471. } from "@/api/PrintsManage/manage";
  472. import { getToken } from "@/utils/auth";
  473. import Cookies from "js-cookie";
  474. import axios from "axios";
  475. const XLSX = require("xlsx");
  476. const docx = require("docx-preview");
  477. window.JSZip = require("jszip");
  478. export default {
  479. name: "Manage",
  480. dicts: ["level"],
  481. props: {
  482. // 值
  483. value: [String, Object, Array],
  484. // 数量限制
  485. limit: {
  486. type: Number,
  487. default: 5
  488. },
  489. // 大小限制(MB)
  490. fileSize: {
  491. type: Number,
  492. default: 5
  493. },
  494. // 文件类型, 例如['png', 'jpg', 'jpeg']
  495. fileType: {
  496. type: Array,
  497. default: () => ["doc", "xls", "ppt", "txt", "pdf"]
  498. },
  499. // 是否显示提示
  500. isShowTip: {
  501. type: Boolean,
  502. default: true
  503. }
  504. },
  505. data() {
  506. return {
  507. // 遮罩层
  508. loading: true,
  509. // 导出遮罩层
  510. exportLoading: false,
  511. // 选中数组
  512. ids: [],
  513. // 非单个禁用
  514. single: true,
  515. // 非多个禁用
  516. multiple: true,
  517. // 显示搜索条件
  518. showSearch: true,
  519. // 总条数
  520. total: 0,
  521. // 集中文印主表格数据
  522. manageList: [],
  523. // 弹出层标题
  524. title: "",
  525. // 是否显示弹出层
  526. open: false,
  527. dyopen: false,
  528. // 查询参数
  529. queryParams: {
  530. pageNum: 1,
  531. pageSize: 10,
  532. name: null,
  533. file: null,
  534. type: null,
  535. size: null,
  536. unitId: null,
  537. unitName: null,
  538. levelM: null,
  539. sendId: null,
  540. sendName: null,
  541. creattime: null,
  542. updatetime: null,
  543. explainInfo: null,
  544. printStatus: null,
  545. receiveId: null,
  546. receiveName: null,
  547. sFile: null,
  548. printInfo: null
  549. },
  550. // 表单参数
  551. form: {},
  552. dyform: {},
  553. // 表单校验
  554. rules: {},
  555. //级别
  556. levelMs: [],
  557. baseUrl: process.env.VUE_APP_BASE_API,
  558. uploadFileUrl:
  559. process.env.VUE_APP_BASE_API + "/PrintsManage/manage/printFile", // 上传的图片服务器地址
  560. headers: {
  561. Authorization: "Bearer " + getToken()
  562. },
  563. fileList: [],
  564. faith: null,
  565. rylist: [],
  566. islist: [],
  567. yaoqiu: "",
  568. dyopen2: false,
  569. tableau: null
  570. };
  571. },
  572. created() {
  573. this.getList();
  574. //级别
  575. this.getDicts("level").then(response => {
  576. this.levelMs = response.data;
  577. });
  578. //是否
  579. this.getDicts("sys_is").then(response => {
  580. this.islist = response.data;
  581. });
  582. },
  583. methods: {
  584. /** 查询集中文印主列表 */
  585. getList() {
  586. this.loading = true;
  587. listManage(this.queryParams).then(response => {
  588. this.manageList = response.rows;
  589. this.total = response.total;
  590. this.loading = false;
  591. });
  592. },
  593. // 取消按钮
  594. cancel() {
  595. this.open = false;
  596. this.reset();
  597. },
  598. dycancel() {
  599. this.dyopen = false;
  600. this.dyreset();
  601. },
  602. // 表单重置
  603. reset() {
  604. this.form = {
  605. id: null,
  606. name: null,
  607. file: null,
  608. type: null,
  609. size: null,
  610. unitId: null,
  611. unitName: null,
  612. levelM: null,
  613. sendId: null,
  614. sendName: null,
  615. creattime: null,
  616. updatetime: null,
  617. explainInfo: null,
  618. printStatus: 0,
  619. receiveId: null,
  620. receiveName: null,
  621. sFile: null,
  622. printInfo: null,
  623. isReturn: null,
  624. printNumber: null,
  625. isPrintTwo: null,
  626. isPrintColor: null
  627. };
  628. this.resetForm("form");
  629. },
  630. // 表单重置
  631. dyreset() {
  632. this.dyform = {
  633. id: null,
  634. printName: null,
  635. printNumber: null,
  636. isReturn: null,
  637. printfileName: null,
  638. explainInfo: null,
  639. file: null,
  640. printId: null,
  641. statusG: null,
  642. isPrintTwo: null,
  643. isPrintColor: null
  644. };
  645. this.resetForm("dyform");
  646. },
  647. /** 搜索按钮操作 */
  648. handleQuery() {
  649. this.queryParams.pageNum = 1;
  650. this.getList();
  651. },
  652. /** 重置按钮操作 */
  653. resetQuery() {
  654. this.resetForm("queryForm");
  655. this.handleQuery();
  656. },
  657. // 多选框选中数据
  658. handleSelectionChange(selection) {
  659. this.ids = selection.map(item => item.id);
  660. this.single = selection.length !== 1;
  661. this.multiple = !selection.length;
  662. },
  663. /** 新增按钮操作 */
  664. handleAdd() {
  665. this.reset();
  666. this.open = true;
  667. this.title = "添加集中文印主";
  668. this.form.sendName = Cookies.get("nickName");
  669. this.form.sendId = Cookies.get("userId");
  670. },
  671. /** 修改按钮操作 */
  672. handleUpdate(row) {
  673. this.reset();
  674. const id = row.id || this.ids;
  675. getManage(id).then(response => {
  676. this.form = response.data;
  677. this.form.isPrintColor = response.data.isPrintColor + "";
  678. this.form.isPrintTwo = response.data.isPrintTwo + "";
  679. this.open = true;
  680. this.title = "修改集中文印主";
  681. });
  682. },
  683. /** 提交按钮 */
  684. submitForm() {
  685. this.$refs["form"].validate(valid => {
  686. if (valid) {
  687. if (this.form.id != null) {
  688. updateManage(this.form).then(response => {
  689. this.$modal.msgSuccess("修改成功");
  690. this.open = false;
  691. this.getList();
  692. });
  693. } else {
  694. addManage(this.form).then(response => {
  695. this.$modal.msgSuccess("新增成功");
  696. this.open = false;
  697. this.getList();
  698. });
  699. }
  700. }
  701. });
  702. },
  703. /** 删除按钮操作 */
  704. handleDelete(row) {
  705. const ids = row.id || this.ids;
  706. this.$modal
  707. .confirm("是否确认删除该数据项?")
  708. .then(function() {
  709. return delManage(ids);
  710. })
  711. .then(() => {
  712. this.getList();
  713. this.$modal.msgSuccess("删除成功");
  714. })
  715. .catch(() => {});
  716. },
  717. /** 导出按钮操作 */
  718. handleExport() {
  719. const queryParams = this.queryParams;
  720. this.$modal
  721. .confirm("是否确认导出所有集中文印主数据项?")
  722. .then(() => {
  723. this.exportLoading = true;
  724. return exportManage(queryParams);
  725. })
  726. .then(response => {
  727. this.$download.name(response.msg);
  728. this.exportLoading = false;
  729. })
  730. .catch(() => {});
  731. },
  732. // 上传前校检格式和大小
  733. handleBeforeUpload(file) {
  734. // 校检文件类型
  735. this.form.name = file.name;
  736. if (file.size == 0) {
  737. this.form.size = "0 B";
  738. }
  739. var k = 1024;
  740. var sizes = ["B", "KB", "MB", "GB", "TB", "EB", "ZB", "YB"];
  741. var i = Math.floor(Math.log(file.size) / Math.log(k));
  742. this.form.size = file.size;
  743. this.form.size =
  744. (file.size / Math.pow(k, i)).toPrecision(3) + "" + sizes[i];
  745. if (this.fileType) {
  746. let fileExtension = "";
  747. if (file.name.lastIndexOf(".") > -1) {
  748. fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
  749. this.form.type = fileExtension;
  750. }
  751. const isTypeOk = this.fileType.some(type => {
  752. if (file.type.indexOf(type) > -1) return true;
  753. if (fileExtension && fileExtension.indexOf(type) > -1) return true;
  754. return false;
  755. });
  756. if (!isTypeOk) {
  757. this.$message.error(
  758. `文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`
  759. );
  760. return false;
  761. }
  762. }
  763. // 校检文件大小
  764. if (this.fileSize) {
  765. const isLt = file.size / 1024 / 1024 < this.fileSize;
  766. if (!isLt) {
  767. this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
  768. return false;
  769. }
  770. }
  771. return true;
  772. },
  773. // 文件个数超出
  774. handleExceed() {
  775. this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);
  776. },
  777. // 上传失败
  778. handleUploadError(err) {
  779. this.$message.error("上传失败, 请重试");
  780. },
  781. // 上传成功回调
  782. handleUploadSuccess(res, file) {
  783. this.$message.success("上传成功");
  784. this.fileList.push({ name: file.name, url: res.fileName });
  785. this.$emit("input", this.fileList);
  786. this.form.file = res.url;
  787. },
  788. //打印
  789. handlePrint(row) {
  790. console.log(row);
  791. this.dyreset();
  792. this.dyopen = true;
  793. this.title = "打印";
  794. this.dyform.printName = row.name;
  795. this.dyform.explainInfo = row.explainInfo;
  796. this.dyform.printId = row.id;
  797. this.dyform.file = row.file;
  798. this.dyform.statusG = 0;
  799. this.dyform.printfileName = row.sendName;
  800. this.dyform.printNumber = row.printNumber;
  801. this.dyform.type = row.type;
  802. // this.dyform.isReturn = row.isReturn + "";
  803. if (row.isPrintColor == 1) {
  804. this.yaoqiu = "彩打";
  805. }
  806. if (row.isPrintTwo == 1) {
  807. if (this.yaoqiu) {
  808. this.yaoqiu += " 双面打";
  809. } else {
  810. this.yaoqiu = "双面打";
  811. }
  812. }
  813. this.getrylist();
  814. },
  815. //获取人员
  816. getrylist() {
  817. listPeople().then(res => {
  818. if (res.code == 200) {
  819. this.rylist = res.rows;
  820. }
  821. });
  822. },
  823. //打印提交
  824. dysubmitForm() {
  825. if (this.dyform.isReturn == 0) {
  826. this.dyform.statusG = 1;
  827. } else {
  828. this.dyform.statusG = 0;
  829. }
  830. printCode(this.dyform).then(res => {
  831. if (res.code == 200) {
  832. console.log(res);
  833. this.dyopen = false;
  834. this.getList();
  835. // var open=window.open();
  836. // let url='http://192.168.5.188:8080/profile/print/';
  837. let url='http://192.168.5.66:8089/profile/print/';
  838. location.href =
  839. url + res.printFileName;
  840. }
  841. });
  842. // open.location.href="http://192.168.5.188:8080/priofile/print/202203211244.docx";
  843. // window.open( `https://view.officeapps.live.com/op/view.aspx?src=http://192.168.5.188:8080/profile/print/202203211428.docx`, "_blank");
  844. }
  845. }
  846. };
  847. </script>
  848. <style scoped>
  849. ::v-deep .el-dialog {
  850. background-color: #004d86;
  851. }
  852. ::v-deep .el-dialog__header {
  853. border-bottom: 1px solid #718a9d;
  854. }
  855. ::v-deep .el-dialog__title {
  856. color: #fff;
  857. font: 18px;
  858. }
  859. ::v-deep .el-dialog__headerbtn .el-dialog__close {
  860. color: #fff;
  861. }
  862. .el-form-item ::v-deep .el-input__inner {
  863. width: 200px;
  864. height: 36px;
  865. background: transparent;
  866. color: #fff;
  867. border: 1px solid #fff !important;
  868. }
  869. ::v-deep .el-date-editor.el-input {
  870. width: 200px;
  871. height: 36px;
  872. }
  873. .pictureUploading-img img {
  874. width: 60px;
  875. height: 210px;
  876. margin-right: 10px;
  877. }
  878. ::v-deep .el-upload--picture-card {
  879. height: 210px;
  880. width: 170px;
  881. line-height: 210px;
  882. background-image: url("../../../assets/images/头像.png");
  883. background-repeat: no-repeat;
  884. background-size: 100% 100%;
  885. }
  886. ::v-deep .el-upload--picture-card .el-icon-plus {
  887. display: none;
  888. }
  889. .el-upload--picture-card /deep/ .el-upload--picture-card i {
  890. font-size: 48px;
  891. }
  892. ::v-deep .el-upload__tip {
  893. display: none;
  894. }
  895. ::v-deep .textarea-explainInfo .el-textarea__inner {
  896. width: 980px;
  897. height: 104px;
  898. }
  899. ::v-deep .dyform-textarea .el-textarea__inner {
  900. width: 650px;
  901. height: 64px;
  902. }
  903. .jiben2 {
  904. width: 650px;
  905. }
  906. .jiben span {
  907. width: 25px;
  908. height: 25px;
  909. display: inline-block;
  910. background-color: #1c86e1;
  911. line-height: 25px;
  912. text-align: center;
  913. font-size: 16px;
  914. cursor: pointer;
  915. /* margin-left: 851px; */
  916. position: absolute;
  917. right: 20px;
  918. }
  919. .el-select-dropdown__item:hover {
  920. color: #1c86e1;
  921. }
  922. .el-select-dropdown__item {
  923. color: #000;
  924. }
  925. .el-tree {
  926. background-color: #00365f;
  927. color: #fff;
  928. }
  929. ::v-deep .el-tree-node__content:hover {
  930. color: #1c86e1;
  931. }
  932. ::v-deep .el-upload-list--picture-card .el-upload-list__item {
  933. height: 210px;
  934. width: 170px;
  935. }
  936. .dadui {
  937. height: 40px;
  938. background: #003156;
  939. /* border-bottom: 1px solid #718A9D ; */
  940. background-image: url(../../../images/矩形底部边框.png);
  941. background-repeat: no-repeat;
  942. background-position: 0px 39px;
  943. font-size: 16px;
  944. color: #1d96ff;
  945. }
  946. .dadui img {
  947. margin: 10px 10px 0px 10px;
  948. }
  949. .data {
  950. height: 40px;
  951. background: #003156;
  952. margin-bottom: 12px;
  953. color: #fff;
  954. display: flex;
  955. font-size: 13px;
  956. line-height: 25px;
  957. position: relative;
  958. }
  959. .el-tree {
  960. padding: 10px;
  961. background: #003156;
  962. color: #fff;
  963. }
  964. .data p {
  965. position: absolute;
  966. top: -5px;
  967. left: 15px;
  968. }
  969. .data .a1 {
  970. width: 128px;
  971. height: 26px;
  972. background: rgba(23, 74, 112, 0.4);
  973. border-radius: 13px;
  974. position: absolute;
  975. top: 7px;
  976. left: 60px;
  977. }
  978. ::v-deep .data .el-date-editor.el-input {
  979. width: 100%;
  980. border: none;
  981. }
  982. ::v-deep .data .el-input__inner {
  983. width: 100% !important;
  984. border: none;
  985. }
  986. ::v-deep .data .el-input--medium .el-input__icon {
  987. line-height: 36px;
  988. position: absolute;
  989. right: -223px;
  990. top: 2px;
  991. }
  992. ::v-deep .data .el-input__inner {
  993. background-color: transparent;
  994. color: #fff;
  995. text-align: center;
  996. margin-top: 2px;
  997. }
  998. ::v-deep .data .el-input__suffix {
  999. position: absolute;
  1000. right: 281px;
  1001. }
  1002. ::v-deep
  1003. .el-tree--highlight-current
  1004. .el-tree-node.is-current
  1005. > .el-tree-node__content {
  1006. color: #00365f !important;
  1007. /* background-color: #003156 !important; */
  1008. }
  1009. ::v-deep .el-radio-group .el-radio {
  1010. color: #fff;
  1011. }
  1012. /* ::v-deep .el-radio:last-child {
  1013. margin-left: 35px;
  1014. } */
  1015. /* 调整输入框提示文字颜色 */
  1016. ::v-deep .vue-treeselect__placeholder {
  1017. color: #bdbdbd4f !important;
  1018. }
  1019. ::v-deep input::-webkit-input-placeholder {
  1020. color: #bdbdbd4f !important;
  1021. }
  1022. ::v-deep input:-moz-placeholder {
  1023. color: #bdbdbd4f !important;
  1024. }
  1025. /* 文本域提示文字颜色 */
  1026. ::v-deep ::-webkit-input-placeholder {
  1027. color: #bdbdbd4f !important;
  1028. }
  1029. ::v-deep .el-dialog__footer {
  1030. padding-right: 30px !important;
  1031. }
  1032. </style>