P32.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta name="renderer" content="webkit">
  5. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  6. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="Cache" content="no-cache">
  9. <meta http-equiv="cache-control" content="no-cache, must-revalidate">
  10. <meta http-equiv="expires" content="0">
  11. <meta name="viewport"
  12. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  13. <title>证书统计</title>
  14. <link rel="stylesheet" href="../css/index.css">
  15. <link rel="stylesheet" href="../css/style.css">
  16. <link rel="stylesheet" href="../css/iconfont.css">
  17. <link rel="stylesheet" href="../css/tablema.css">
  18. <script src="../js/vue.min.js"></script>
  19. <script src="../js/index.js"></script>
  20. <script src="../js/jquery.min.js"></script>
  21. <script src="../js/echarts.min.js"></script>
  22. <script type="text/javascript">
  23. document.write('<script src="../assets/init.js?id=' + (new Date().getTime()) +
  24. '" type="text/javascript" charset="utf-8"><\/script>');
  25. document.write('<script src="../assets/ajax.js?id=' + (new Date().getTime()) +
  26. '" type="text/javascript" charset="utf-8"><\/script>');
  27. </script>
  28. <script>
  29. checkLogin();
  30. </script>
  31. <style type="text/css">
  32. .el-form-item__label {
  33. color: #fff;
  34. }
  35. .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
  36. color: #409EFF;
  37. background-color: transparent;
  38. }
  39. ::--webkit-scrollbar{
  40. display: block !important;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <div id="app" v-cloak class="padding-xs">
  46. <el-row :gutter="10">
  47. <el-col :span="12" :xs="24">
  48. <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="90px">
  49. <el-form-item label="证书名称:" prop="certificateName" class="cerName">
  50. <el-input v-model="queryParams.certificateName" placeholder="请输入证书名称" clearable
  51. @keyup.enter="handleQuery" />
  52. </el-form-item>
  53. <el-form-item>
  54. <el-button type="primary" size="small" icon="el-icon-search" @click="handleQuery">搜索
  55. </el-button>
  56. <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
  57. </el-form-item>
  58. </el-form>
  59. </el-col>
  60. <el-col :span="12" :xs="24" class="text-right">
  61. <el-button type="success" size="small" plain icon="el-icon-plus" @click="handleAdd">新增</el-button><!--
  62. <el-button type="success" size="small" plain icon="el-icon-edit">修改</el-button>
  63. <el-button type="danger" size="small" plain icon="el-icon-delete">删除</el-button> -->
  64. <!-- <el-button type="warning" size="small" plain icon="el-icon-download">导出</el-button> -->
  65. </el-col>
  66. </el-row>
  67. <el-table :data="certificateList" :header-cell-style="{ color: 'var(--white)',background: '#082041' }">
  68. <el-table-column type="expand" width="30">
  69. <template slot-scope="scope">
  70. <div class="padding text-white">
  71. <el-descriptions :column="3">
  72. <el-descriptions-item label="编号" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  73. {{ scope.row.certificateId }}
  74. </el-descriptions-item>
  75. <el-descriptions-item label="所属部门" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  76. {{scope.row.deptName}}
  77. </el-descriptions-item>
  78. <el-descriptions-item label="证书名称" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  79. {{ scope.row.certificateName }}
  80. </el-descriptions-item>
  81. <el-descriptions-item label="证书正面" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  82. <el-image
  83. style="width: 50px; height: 50px"
  84. :preview-src-list="scope.row.certificatePositve | getImgList"
  85. :src="imgUrl+scope.row.certificatePositve" >
  86. </el-image>
  87. </el-descriptions-item>
  88. <el-descriptions-item label="证书内容" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  89. {{ scope.row.certificateContent }}
  90. </el-descriptions-item>
  91. <el-descriptions-item label="签发日期" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  92. {{ parseTime(scope.row.certificateIssueDate, '{y}-{m}-{d}') }}
  93. </el-descriptions-item>
  94. <el-descriptions-item label="证书类别" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  95. <my-texttag :options="certificate_category" column="value" label="label"
  96. :value="scope.row.certificateCategory" text></my-texttag>
  97. </el-descriptions-item>
  98. <el-descriptions-item label="下次检验时间" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  99. {{ parseTime(scope.row.certificateNextDate, '{y}-{m}-{d}') }}
  100. </el-descriptions-item>
  101. <el-descriptions-item label="有效期" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  102. {{ parseTime(scope.row.certificateEffectiveDate, '{y}-{m}-{d}') }}
  103. </el-descriptions-item>
  104. <el-descriptions-item label="使用期限" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  105. {{ scope.row.certificateTerm }}
  106. </el-descriptions-item>
  107. <el-descriptions-item label="备注" :label-style="{color:'#fff'}" :content-style="{color:'#ddd'}">
  108. {{ scope.row.certificateRemarks }}
  109. </el-descriptions-item>
  110. </el-descriptions>
  111. </div>
  112. </template>
  113. </el-table-column>
  114. <el-table-column label="序号" align="center" type="index" width="50"></el-table-column>
  115. <el-table-column label="编号" align="center" prop="certificateId" show-overflow-tooltip></el-table-column>
  116. <el-table-column label="证书正面" align="center" prop="certificatePositve">
  117. <template slot-scope="scope">
  118. <el-image
  119. style="width: 50px; height: 50px"
  120. :preview-src-list="scope.row.certificatePositve | getImgList"
  121. :src="imgUrl+scope.row.certificatePositve" >
  122. </el-image>
  123. </template>
  124. </el-table-column>
  125. <el-table-column label="所属部门" align="center" prop="deptName"></el-table-column>
  126. <el-table-column label="证书名称" align="center" prop="certificateName"></el-table-column>
  127. <el-table-column label="签发日期" align="center" prop="certificateIssueDate">
  128. <template slot-scope="scope">
  129. <span>{{ parseTime(scope.row.certificateIssueDate, '{y}-{m}-{d}') }}</span>
  130. </template>
  131. </el-table-column>
  132. <el-table-column label="有效期" align="center" prop="certificateEffectiveDate">
  133. <template slot-scope="scope">
  134. <span>{{ parseTime(scope.row.certificateEffectiveDate, '{y}-{m}-{d}') }}</span>
  135. </template>
  136. </el-table-column>
  137. <el-table-column label="下次检验时间" align="center" prop="certificateNextDate">
  138. <template slot-scope="scope">
  139. <span>{{ parseTime(scope.row.certificateNextDate, '{y}-{m}-{d}') }}</span>
  140. </template>
  141. </el-table-column>
  142. <el-table-column label="到期提醒" align="center" prop="isRemind">
  143. <template slot-scope="scope">
  144. <el-switch v-model="scope.row.isRemind" active-value="1" inactive-value="0"></el-switch>
  145. </template>
  146. </el-table-column>
  147. <el-table-column label="操作" align="center" width="150">
  148. <template slot-scope="scope">
  149. <el-button link type="text" class="text-green" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
  150. <el-button link type="text" class="text-red" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
  151. </template>
  152. </el-table-column>
  153. </el-table>
  154. <div class="margin-tb-sm" v-if="certificateList.length">
  155. <el-pagination @current-change="handleCurrentChange" :current-page="queryParams.pageNum" background
  156. :page-size="10" layout="total, prev, pager, next, jumper" :total="allTotal">
  157. </el-pagination>
  158. </div>
  159. <!-- 添加或修改证书对话框 -->
  160. <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
  161. <el-form ref="certificateRef" :model="cerForm" :rules="rules" label-width="120px" class="grid col-2">
  162. <el-form-item label="所属部门:" prop="deptId">
  163. <el-select :placeholder="cerForm.deptName" ref="conSelect" style="width: 100%;">
  164. <el-option>
  165. <el-tree
  166. ref="treeSele"
  167. node-key="id"
  168. :data="deptOptions"
  169. :props="defaultProps"
  170. :highlight-current="true"
  171. @node-click="nodeClick"
  172. />
  173. </el-option>
  174. </el-select>
  175. </el-form-item>
  176. <el-form-item label="证书名称:" prop="certificateName">
  177. <el-input v-model="cerForm.certificateName" placeholder="请输入证书名称" />
  178. </el-form-item>
  179. <el-form-item label="签发日期:" prop="certificateIssueDate">
  180. <el-date-picker clearable v-model="cerForm.certificateIssueDate" type="date" class="flex-sub"
  181. value-format="yyyy-MM-dd" placeholder="请选择签发日期">
  182. </el-date-picker>
  183. </el-form-item>
  184. <el-form-item label="下次检验时间:" prop="certificateNextDate">
  185. <el-date-picker clearable v-model="cerForm.certificateNextDate" type="date" value-format="yyyy-MM-dd"
  186. class="flex-sub" placeholder="请选择下次检验时间">
  187. </el-date-picker>
  188. </el-form-item>
  189. <el-form-item label="有效期:" prop="certificateEffectiveDate">
  190. <el-date-picker clearable v-model="cerForm.certificateEffectiveDate" type="date" class="flex-sub"
  191. value-format="yyyy-MM-dd" placeholder="请选择有效期">
  192. </el-date-picker>
  193. </el-form-item>
  194. <el-form-item label="证书类别:" prop="certificateCategory">
  195. <el-select v-model="cerForm.certificateCategory" placeholder="请选择证书类别" style="width:100%;display:block">
  196. <el-option v-for="dict in certificate_category" :key="dict.value" :label="dict.label"
  197. :value="dict.value"></el-option>
  198. </el-select>
  199. </el-form-item>
  200. <el-form-item label="证书内容:">
  201. <el-input v-model="cerForm.certificateContent" type="textarea" :rows="3" placeholder="请输入证书内容" />
  202. </el-form-item>
  203. <el-form-item label="备注:" prop="certificateRemarks">
  204. <el-input v-model="cerForm.certificateRemarks" type="textarea" :rows="3" placeholder="请输入备注" />
  205. </el-form-item>
  206. <el-form-item label="证书正面:">
  207. <el-upload
  208. class="avatar-uploader"
  209. :headers="upHeaders"
  210. :action="imgUrl+'common/upload'"
  211. :show-file-list="false"
  212. limit="1"
  213. :on-success="handleAvatarSuccess"
  214. :before-upload="beforeAvatarUpload">
  215. <img v-if="cerForm.certificatePositve" :src="imgUrl + cerForm.certificatePositve" class="avatar">
  216. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  217. </el-upload>
  218. </el-form-item>
  219. <el-form-item label="到期提醒:" prop="certificateRemarks">
  220. <el-switch v-model="cerForm.isRemind"
  221. active-value="1"
  222. inactive-value="0"
  223. ></el-switch>
  224. </el-form-item>
  225. <el-form-item>
  226. <el-button size="small" type="primary" @click="submitForm">确 定</el-button>
  227. <el-button size="small" @click="open=false">取 消</el-button>
  228. </el-form-item>
  229. </el-form>
  230. </el-dialog>
  231. </div>
  232. <script type="text/javascript">
  233. document.write('<script src="../assets/fileApi.js?id=' + (new Date().getTime()) + '" type="text/javascript" charset="utf-8"><\/script>');
  234. document.write('<script src="../components/TextTag.js?id=' + (new Date().getTime()) + '" type="text/javascript" charset="utf-8"><\/script>');
  235. document.write('<script src="../assets/certificateList.js?id=' + (new Date().getTime()) + '" type="text/javascript" charset="utf-8"><\/script>');
  236. </script>
  237. </body>
  238. </html>