draftPage.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  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 == 0){
  116. this.pageType = 1;
  117. }else if(type == 1){
  118. this.pageType = 1;
  119. this.resetQuery();
  120. }else if(type == 2){
  121. this.getHxpapply(id);
  122. }
  123. },
  124. //查询详情
  125. getHxpapply(id){
  126. getHxpapply(id).then(response => {
  127. let maxObj = {
  128. id:id,
  129. subId:parseInt(response.data.subId),
  130. applyReason:response.data.applyReason,
  131. maxList:[],
  132. }
  133. for(let i=0;i<response.data.actHxpapplyDetailList.length;i++){
  134. let num = 0;
  135. for(let o=0;o<maxObj.maxList.length;o++){
  136. if(maxObj.maxList[o].chemicalId == response.data.actHxpapplyDetailList[i].chemicalId){
  137. num++
  138. }
  139. }
  140. if(num == 0){
  141. let obj = {
  142. chemicalId:parseInt(response.data.actHxpapplyDetailList[i].chemicalId),
  143. chemicalName:response.data.actHxpapplyDetailList[i].chemicalName,
  144. applyUnit:response.data.actHxpapplyDetailList[i].applyUnit,
  145. list:[],
  146. }
  147. maxObj.maxList.push(obj);
  148. }
  149. }
  150. for(let i=0;i<response.data.actHxpapplyDetailList.length;i++){
  151. for(let o=0;o<maxObj.maxList.length;o++){
  152. console.log('maxObj.maxList[o].chemicalId',maxObj.maxList[o].chemicalId)
  153. console.log('response.data.actHxpapplyDetailList[i].chemicalId',response.data.actHxpapplyDetailList[i].chemicalId)
  154. if(maxObj.maxList[o].chemicalId == response.data.actHxpapplyDetailList[i].chemicalId){
  155. let minObj = {
  156. cabinetId:parseInt(response.data.actHxpapplyDetailList[i].cabinetId),
  157. applyNum:parseInt(response.data.actHxpapplyDetailList[i].applyNum),
  158. applyText:response.data.actHxpapplyDetailList[i].remainingStorage,
  159. };
  160. maxObj.maxList[o].list.push(minObj);
  161. }
  162. }
  163. }
  164. this.$set(this,'editPagePropsData',maxObj);
  165. this.pageType = 2;
  166. });
  167. },
  168. //删除
  169. delHxpapply(id){
  170. let self = this;
  171. this.$confirm('是否确认删除?', "警告", {
  172. confirmButtonText: "确定",
  173. cancelButtonText: "取消",
  174. type: "warning"
  175. }).then(function() {
  176. delHxpapply(id).then(response => {
  177. self.msgSuccess(response.msg);
  178. self.resetQuery();
  179. });
  180. }).then(() => {
  181. }).catch(() => {});
  182. },
  183. //获取数据列表
  184. getList(){
  185. this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
  186. if(this.dateRange[0]){
  187. this.queryParamsData.beginCreateTime = this.dateRange[0];
  188. this.queryParamsData.endCreateTime = this.dateRange[1];
  189. }else {
  190. this.queryParamsData.beginCreateTime = null
  191. this.queryParamsData.endCreateTime = null
  192. }
  193. getHxpapplyDraftsList(this.queryParamsData).then(response => {
  194. this.total = response.total;
  195. this.tableList = response.rows;
  196. });
  197. },
  198. /** 搜索按钮操作 */
  199. handleQuery() {
  200. this.queryParamsData.pageNum = 1;
  201. this.queryParamsData.pageSize = 20;
  202. this.queryParams = JSON.parse(JSON.stringify(this.queryParamsData));
  203. this.getList();
  204. },
  205. /** 重置按钮操作 */
  206. resetQuery() {
  207. this.$set(this,'queryParamsData',{});
  208. this.$set(this,'queryParams',{});
  209. this.$set(this,'dateRange',[]);
  210. this.handleQuery();
  211. },
  212. //返回
  213. backPage(){
  214. this.$parent.pageToggle(1);
  215. },
  216. }
  217. }
  218. </script>
  219. <style scoped lang="scss">
  220. .draftPage{
  221. flex:1;
  222. display: flex;
  223. flex-direction: column;
  224. overflow: hidden;
  225. p{
  226. margin:0;
  227. padding:0;
  228. }
  229. .draftPage-min{
  230. flex:1;
  231. display: flex;
  232. flex-direction: column;
  233. overflow: hidden;
  234. padding:20px;
  235. .button-box{
  236. display: flex;
  237. }
  238. }
  239. }
  240. </style>