draftPage.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <!--草稿箱-->
  2. <template>
  3. <div class="draftPage">
  4. <div class="draftPage-min" v-if="pageType == 1">
  5. <el-form :model="queryParamsData" class="form-box" ref="queryForm" :inline="true">
  6. <el-form-item label="关键字" prop="searchValue">
  7. <el-input
  8. style="width:210px;"
  9. maxLength="30"
  10. v-model="queryParamsData.searchValue"
  11. placeholder="编号/化学品名/实验室"
  12. clearable
  13. size="small"
  14. />
  15. </el-form-item>
  16. <el-form-item label="创建时间" prop="terminalStatus">
  17. <el-date-picker
  18. :clearable="false"
  19. v-model="dateRange"
  20. size="small"
  21. style="width: 220px"
  22. value-format="yyyy-MM-dd"
  23. type="daterange"
  24. range-separator="-"
  25. start-placeholder="开始日期"
  26. end-placeholder="结束日期"
  27. ></el-date-picker>
  28. </el-form-item>
  29. <el-form-item>
  30. <p class="inquire-button-one" @click="handleQuery" style="margin-right:10px;">查询</p>
  31. <p class="reset-button-one" @click="resetQuery">重置</p>
  32. </el-form-item>
  33. <el-form-item style="float: right;">
  34. <el-col :span="1.5">
  35. <p class="reset-button-one"
  36. @click="backPage"
  37. >返回</p>
  38. </el-col>
  39. </el-form-item>
  40. </el-form>
  41. <el-table border :data="tableList"ref="multipleTable">
  42. <el-table-column label="申购编号" align="center" prop="applyNum" width="210" show-overflow-tooltip/>
  43. <el-table-column label="实验室" align="center" prop="subName" width="307" show-overflow-tooltip/>
  44. <el-table-column label="申购信息" align="center" prop="chemicalNames" show-overflow-tooltip/>
  45. <el-table-column label="创建时间" align="center" prop="createTime" width="200" show-overflow-tooltip/>
  46. <el-table-column label="操作" align="center" prop="operator" width="130">
  47. <template slot-scope="scope">
  48. <div class="button-box">
  49. <p class="table-min-button"
  50. style="margin:0!important;"
  51. @click="pageToggle(2,scope.row.id)"
  52. >编辑</p>
  53. <p class="table-min-button"
  54. style="margin:0!important;"
  55. @click="delHxpapply(scope.row.id)"
  56. >删除</p>
  57. </div>
  58. </template>
  59. </el-table-column>
  60. </el-table>
  61. <pagination
  62. v-show="total>0"
  63. :total="total"
  64. :page-sizes="[20, 30, 40, 50]"
  65. :page.sync="queryParams.pageNum"
  66. :limit.sync="queryParams.pageSize"
  67. @pagination="getList"
  68. />
  69. </div>
  70. <edit-page :editPagePropsData="editPagePropsData" v-if="pageType == 2"></edit-page>
  71. </div>
  72. </template>
  73. <script>
  74. import editPage from "./editPage.vue"
  75. import { getHxpapplyDraftsList,delHxpapply,getHxpapply } from "@/api/medicUniversity-3_1/index";
  76. export default {
  77. name: "draftPage",
  78. components: {
  79. editPage
  80. },
  81. data(){
  82. return{
  83. // 遮罩层
  84. loading:false,
  85. //页面状态
  86. pageType:1,
  87. // 创建时间
  88. dateRange:[],
  89. // 搜索数据
  90. queryParamsData:{
  91. pageNum:1,
  92. pageSize:20,
  93. },
  94. // 搜索实际发送数据
  95. queryParams:{
  96. pageNum:1,
  97. pageSize:20,
  98. },
  99. //数据数量
  100. total:0,
  101. //数据数组
  102. tableList:[],
  103. //详情数据
  104. editPagePropsData:{}
  105. }
  106. },
  107. created() {
  108. },
  109. mounted(){
  110. this.getList();
  111. },
  112. methods: {
  113. //编辑页面
  114. pageToggle(type,id){
  115. if(type == 1){
  116. this.pageType = 1;
  117. this.resetQuery();
  118. }else if(type == 2){
  119. this.getHxpapply(id);
  120. }
  121. },
  122. //查询详情
  123. getHxpapply(id){
  124. getHxpapply(id).then(response => {
  125. let maxObj = {
  126. id:id,
  127. subId:parseInt(response.data.subId),
  128. applyReason:response.data.applyReason,
  129. maxList:[],
  130. }
  131. for(let i=0;i<response.data.actHxpapplyDetailList.length;i++){
  132. let num = 0;
  133. for(let o=0;o<maxObj.maxList.length;o++){
  134. if(maxObj.maxList[o].chemicalId == response.data.actHxpapplyDetailList[i].chemicalId){
  135. num++
  136. }
  137. }
  138. if(num == 0){
  139. let obj = {
  140. chemicalId:parseInt(response.data.actHxpapplyDetailList[i].chemicalId),
  141. chemicalName:response.data.actHxpapplyDetailList[i].chemicalName,
  142. list:[],
  143. }
  144. maxObj.maxList.push(obj);
  145. }
  146. }
  147. for(let i=0;i<response.data.actHxpapplyDetailList.length;i++){
  148. for(let o=0;o<maxObj.maxList.length;o++){
  149. console.log('maxObj.maxList[o].chemicalId',maxObj.maxList[o].chemicalId)
  150. console.log('response.data.actHxpapplyDetailList[i].chemicalId',response.data.actHxpapplyDetailList[i].chemicalId)
  151. if(maxObj.maxList[o].chemicalId == response.data.actHxpapplyDetailList[i].chemicalId){
  152. let minObj = {
  153. cabinetId:parseInt(response.data.actHxpapplyDetailList[i].cabinetId),
  154. applyNum:parseInt(response.data.actHxpapplyDetailList[i].applyNum),
  155. applyText:response.data.actHxpapplyDetailList[i].remainingStorage,
  156. };
  157. maxObj.maxList[o].list.push(minObj);
  158. }
  159. }
  160. }
  161. this.$set(this,'editPagePropsData',maxObj);
  162. this.pageType = 2;
  163. });
  164. },
  165. //删除
  166. delHxpapply(id){
  167. let self = this;
  168. this.$confirm('是否确认删除?', "警告", {
  169. confirmButtonText: "确定",
  170. cancelButtonText: "取消",
  171. type: "warning"
  172. }).then(function() {
  173. delHxpapply(id).then(response => {
  174. self.msgSuccess(response.msg);
  175. self.resetQuery();
  176. });
  177. }).then(() => {
  178. }).catch(() => {});
  179. },
  180. //获取数据列表
  181. getList(){
  182. this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
  183. if(this.dateRange[0]){
  184. this.queryParamsData.beginCreateTime = this.dateRange[0];
  185. this.queryParamsData.endCreateTime = this.dateRange[1];
  186. }else {
  187. this.queryParamsData.beginCreateTime = null
  188. this.queryParamsData.endCreateTime = null
  189. }
  190. getHxpapplyDraftsList(this.queryParamsData).then(response => {
  191. this.total = response.total;
  192. this.tableList = response.rows;
  193. });
  194. },
  195. /** 搜索按钮操作 */
  196. handleQuery() {
  197. this.queryParamsData.pageNum = 1;
  198. this.queryParamsData.pageSize = 20;
  199. this.queryParams = JSON.parse(JSON.stringify(this.queryParamsData));
  200. this.getList();
  201. },
  202. /** 重置按钮操作 */
  203. resetQuery() {
  204. this.$set(this,'queryParamsData',{});
  205. this.$set(this,'queryParams',{});
  206. this.$set(this,'dateRange',[]);
  207. this.handleQuery();
  208. },
  209. //返回
  210. backPage(){
  211. this.$parent.pageToggle(1);
  212. },
  213. }
  214. }
  215. </script>
  216. <style scoped lang="scss">
  217. .draftPage{
  218. flex:1;
  219. display: flex;
  220. flex-direction: column;
  221. overflow: hidden;
  222. p{
  223. margin:0;
  224. padding:0;
  225. }
  226. .draftPage-min{
  227. flex:1;
  228. display: flex;
  229. flex-direction: column;
  230. overflow: hidden;
  231. padding:20px;
  232. .button-box{
  233. display: flex;
  234. }
  235. }
  236. }
  237. </style>