66a4fb5d2e0fa4722145690d19408e5a6289dfca.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. <template>
  2. <el-container>
  3. <div class="user-manage" style="min-width: 100%; height: 100%;">
  4. <div class="search-wrapper">
  5. <el-form ref="form" :inline="true" label-width="100px">
  6. <el-form-item label="检查表名称">
  7. <el-input v-model="searchObj.reportName" clearable></el-input>
  8. </el-form-item>
  9. <el-button type="primary" @click="getMemberList()">查询</el-button>
  10. <el-button type="primary" @click="toAddMember('添加')">添加检查表</el-button>
  11. </el-form>
  12. </div>
  13. <el-table
  14. :data="memberList"
  15. border
  16. stripe
  17. :height="tableHeight"
  18. style="width: 100%;">
  19. <el-table-column
  20. prop="reportName"
  21. label="检查表名称">
  22. </el-table-column>
  23. <el-table-column
  24. align="center"
  25. show-overflow-tooltip
  26. prop="reporttypeName"
  27. label="检查表类型"
  28. min-width="100"
  29. ></el-table-column>
  30. <el-table-column
  31. align="center"
  32. show-overflow-tooltip
  33. prop="intm"
  34. label="创建时间"
  35. :formatter="timestampToDate"
  36. sortable
  37. min-width="100"
  38. ></el-table-column>
  39. <el-table-column label="操作" fixed="right">
  40. <template slot-scope="scope">
  41. <el-button type="success" plain @click="toAddMember('编辑',scope.row)">编辑基础信息</el-button>
  42. <el-button type="info" plain @click="openPageoffice('编辑内容',scope.row)">编辑内容</el-button>
  43. <el-button type="danger" plain @click="deleteMember(scope.row)">删除</el-button>
  44. </template>
  45. </el-table-column>
  46. </el-table>
  47. <el-pagination
  48. background
  49. @size-change="handleSizeChange"
  50. @current-change="handleCurrentChange"
  51. :current-page.sync="searchObj.pageNum"
  52. :page-sizes="[10, 20, 300, 40]"
  53. :page-size="searchObj.pageSize"
  54. layout="total, prev, pager, next"
  55. :total="total"
  56. style="margin: 10px auto">
  57. </el-pagination>
  58. </div>
  59. <!-- 添加/编辑项目信息弹窗 -->
  60. <el-dialog :title="curOperate+'检查表'" :visible.sync="xmInfoDialog">
  61. <el-form :model="addObj" :label-width="formLabelWidth">
  62. <el-form-item label="检查表名称" :rules="{required: true}">
  63. <el-input v-model="addObj.reportName" autocomplete="off"></el-input>
  64. </el-form-item>
  65. <el-form-item label="检查表编号">
  66. <el-input v-model="addObj.reportNumber" autocomplete="off"></el-input>
  67. </el-form-item>
  68. <el-form-item label="检查表类别" class="mydropdown" style="text-align:left;background:white !important;">
  69. <el-select v-model="addObj.reportType" value-key="items" placeholder="请选择">
  70. <el-option v-for="(item,index) in checkreporttypeList" :key="index" :label="item.reporttypeName" :value="item.reporttypeNumber">
  71. </el-option>
  72. </el-select>
  73. </el-form-item>
  74. <el-form-item label="创建时间" prop="intm" :rules="{required: true}">
  75. <el-date-picker
  76. v-model="addObj.intm"
  77. type="date"
  78. format="yyyy 年 MM 月 dd 日"
  79. value-format="yyyy-MM-dd"
  80. ></el-date-picker>
  81. </el-form-item>
  82. <el-form-item label="检查表">
  83. <el-input v-model="addObj.file" id="file" type="file" :disabled="fileDisabled"></el-input>
  84. </el-form-item>
  85. <el-form-item label="备注">
  86. <el-input v-model="addObj.reportRemark" autocomplete="off"></el-input>
  87. </el-form-item>
  88. </el-form>
  89. <div slot="footer" class="dialog-footer">
  90. <el-button @click="xmInfoDialog = false">取 消</el-button>
  91. <el-button type="primary" @click="addMember">确 定</el-button>
  92. </div>
  93. </el-dialog>
  94. </el-container>
  95. </template>
  96. <script>
  97. import request from '../../../utils/gw_ajax_request.js'
  98. import {hostUrl} from '@util/global_variable.js'
  99. export default {
  100. //import引入的组件需要注入到对象中才能使用
  101. components: {
  102. upload: resolve => {
  103. require(["../../../widgets/uploadFile.vue"], resolve);
  104. }
  105. },
  106. data() {
  107. return {
  108. tableHeight: window.innerHeight - 210,
  109. formLabelWidth: '120px',
  110. currentDate: new Date(),
  111. total: 0,
  112. memberList: [],
  113. searchObj: {
  114. pageSize: 20,
  115. pageNum: 1,
  116. reportName: ''
  117. },
  118. checkreporttypeList:[],
  119. curOperate: '',
  120. xmInfoDialog: false,
  121. fileDisabled: true,
  122. //督查人员信息修改
  123. addObj: {
  124. reportName: '',
  125. reportType: '',
  126. intm: '',
  127. reportRemark: '',
  128. reportNumber: '',
  129. reportId: '',
  130. file:''
  131. }
  132. };
  133. },
  134. computed:{
  135. persId(){
  136. return localStorage.getItem('userid') ? localStorage.getItem('userid') : ''
  137. }
  138. },
  139. mounted(){
  140. this.getMemberList();
  141. this.getAttCheckreporttypeList();
  142. },
  143. methods:{
  144. handleCurrentChange(val) {
  145. this.searchObj.pageNum = val
  146. this.getMemberList()
  147. },
  148. handleSizeChange(val) {
  149. this.searchObj.pageSize = val
  150. this.getMemberList()
  151. },
  152. getAttCheckreporttypeList(){
  153. request.get(`bis/insp/AttCheckreporttypeBase/findCheckreportTypeList`).then(res => {
  154. if (res.success) {
  155. this.checkreporttypeList = res.data;
  156. } else {
  157. this.$message.error(res.message);
  158. }
  159. });
  160. },
  161. getMemberList(){
  162. request.post('/bis/insp/AttCheckreportBase/findCheckReportList',this.searchObj).then((res)=>{
  163. if(res.success){
  164. this.memberList = res.data.list
  165. this.total = res.data.total
  166. }else{
  167. this.$message.warning(res.message)
  168. }
  169. }).catch(error=>{
  170. this.$message.error(error)
  171. })
  172. },
  173. handleEdit(rowData){
  174. this.$router.push({name: '/xtgl/yhgl',params:{ projectId:rowData.projectName}});
  175. },
  176. // 督查人员
  177. toAddMember(type, row) {
  178. this.curOperate = type;
  179. let rowObj = {};
  180. Object.assign(rowObj, row);
  181. if (this.curOperate == "编辑") {
  182. request.get(`bis/insp/AttCheckreportBase/${rowObj.reportId}`).then(res => {
  183. if (res.success) {
  184. this.addObj = res.data;
  185. } else {
  186. this.$message.error(res.message);
  187. }
  188. });
  189. this.fileDisabled = true;
  190. } else {
  191. for (var obj in this.addObj) {
  192. this.addObj[obj] = "";
  193. }
  194. this.fileDisabled = false;
  195. }
  196. this.xmInfoDialog = true;
  197. },
  198. deleteMember(row) {
  199. this.$confirm("确定删除该报表吗?", "提示", {
  200. confirmButtonText: "确定",
  201. cancelButtonText: "取消",
  202. type: "warning"
  203. })
  204. .then(() => {
  205. request.post(`/bis/insp/AttCheckreportBase/delete/${row.reportId}`).then(res => {
  206. if (res.success) {
  207. this.getMemberList();
  208. this.xmInfoDialog = false;
  209. this.$message({
  210. type: "success",
  211. message: "删除成功!"
  212. });
  213. }
  214. });
  215. })
  216. .catch(() => {
  217. this.$message({
  218. type: "info",
  219. message: "已取消删除"
  220. });
  221. });
  222. },
  223. timestampToDate(row, column) {
  224. var date = new Date(row.intm);
  225. var Y = date.getFullYear() + "-";
  226. var M =
  227. (date.getMonth() + 1 < 10
  228. ? "0" + (date.getMonth() + 1)
  229. : date.getMonth() + 1) + "-";
  230. var D =
  231. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  232. // var h =
  233. // (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  234. // var m =
  235. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  236. return Y + M + D;
  237. },
  238. openPageoffice:function(type, row){
  239. let rowObj = {};
  240. Object.assign(rowObj, row);
  241. let host = hostUrl;
  242. // let host = 'http://10.1.102.140:9002';
  243. let nginx = '/pageofficePath/';
  244. let href = 'pageoffice://|'+host+nginx+'/dc/pageoffice/quality/checkreportWord/'+rowObj.reportId+'|width=1100px;height=800px;ismodal=false;||91A4EE66EC1921F376873E85D6C74FFA|A890649B44577C32CE1930797E1299F9';
  245. let a = document.createElement('a'); // 创建a标签
  246. a.setAttribute('href', href);// href链接
  247. a.click();// 自执行点击事件
  248. },
  249. addMember() {
  250. let form = new FormData();
  251. form.append("file", $("#file")[0].files[0]);
  252. var requestUrl = "";
  253. for (var obj in this.addObj) {
  254. if (this.addObj[obj] == "null" || !this.addObj[obj]) {
  255. this.addObj[obj] = "";
  256. }
  257. }
  258. if (!this.addObj.reportName) {
  259. this.$message.info("请输入报表名称");
  260. return;
  261. }
  262. if (!this.addObj.file && !this.fileDisabled) {
  263. this.$message.info("请上传报表文件");
  264. return;
  265. }
  266. if(this.curOperate == "编辑"){
  267. requestUrl = `/bis/insp/AttCheckreportBase/update?reportName=${
  268. this.addObj.reportName
  269. }&reportId=${this.addObj.reportId}&reportNumber=${this.addObj.reportNumber}&reportType=${this.addObj.reportType}&reportRemark=${this.addObj.reportRemark}&intm=${
  270. this.addObj.intm
  271. }`;
  272. }
  273. if (this.curOperate == "添加") {
  274. requestUrl = `/bis/insp/AttCheckreportBase/insert?reportName=${
  275. this.addObj.reportName
  276. }&reportNumber=${this.addObj.reportNumber}&reportType=${this.addObj.reportType}&reportRemark=${this.addObj.reportRemark}&intm=${
  277. this.addObj.intm
  278. }`;
  279. }
  280. var _self = this;
  281. request
  282. .post(requestUrl, form, {
  283. headers: { "Content-Type": "multipart/form-data" }
  284. })
  285. .then(res => {
  286. if (res.success) {
  287. this.getMemberList();
  288. this.xmInfoDialog = false;
  289. this.$message.success(_self.curOperate+"成功");
  290. } else {
  291. this.$message.error(res.message);
  292. }
  293. });
  294. }
  295. }
  296. }
  297. </script>
  298. <style scoped>
  299. </style>
  300. <style lang="css">
  301. .el-select-dropdown.el-popper > .el-scrollbar {
  302. background-color: white !important;
  303. }
  304. </style>