in-stock.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-form
  4. ref="formRef"
  5. v-model="form"
  6. :data="data2"
  7. :option="option2"
  8. >
  9. </avue-form>
  10. <avue-crud
  11. ref="crudRef"
  12. v-model:search="search"
  13. v-model="form"
  14. :data="data"
  15. :option="option"
  16. v-model:page="page"
  17. @row-save="createRow"
  18. @row-update="updateRow"
  19. @row-del="deleteRow"
  20. @search-change="searchChange"
  21. @search-reset="resetChange"
  22. @selection-change="selectionChanges"
  23. >
  24. </avue-crud>
  25. </div>
  26. <div style="overflow: hidden">
  27. <div class="detail-footer">
  28. <el-button type="primary" @click="onHandle"> 确定 </el-button>
  29. <el-button @click="cancelWindow">取消</el-button>
  30. </div>
  31. </div>
  32. <CommonTable
  33. ref="ctableRef"
  34. tableTitle="员工选择"
  35. tableType="USERS"
  36. @selected-sure="onSelectedFinish"
  37. />
  38. </template>
  39. <script setup lang="ts">
  40. import { ref, getCurrentInstance } from "vue";
  41. import { useCrud } from "@/hooks/userCrud";
  42. import ButtonPermKeys from "@/common/configs/buttonPermission";
  43. import { useCommonStoreHook, useDictionaryStore } from "@/store";
  44. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  45. import {addStock} from "@/api/inStock"
  46. import dictDataUtil from "@/common/configs/dictDataUtil";
  47. // 数据字典相关
  48. const test = () => {
  49. isShowTable.value = true;
  50. tableType.value = tableType.value == 1 ? 2 : 1;
  51. };
  52. const props = defineProps({
  53. workOrderCode: {
  54. type: String,
  55. default: () => {
  56. return 0;
  57. }
  58. },
  59. stockDialog:{
  60. type:Object,
  61. default:()=>{
  62. return {};
  63. }
  64. }
  65. })
  66. const ctableRef=ref(null);
  67. const crudRef=ref(null);
  68. // 传入一个url,后面不带/
  69. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  70. useCrud({
  71. src: "/api/v1/plan/seq",
  72. });
  73. const { dataNoPageList, createRow, updateRow, deleteRow, searchChange, resetChange } =
  74. Methords; //增删改查
  75. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  76. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  77. // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
  78. // const permission = reactive({
  79. // delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
  80. // addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
  81. // editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
  82. // menu: true,
  83. // });
  84. const cancelWindow=()=>{
  85. props.stockDialog.visible=false;
  86. }
  87. const onHandle=()=>{
  88. if(form.value.recipient==undefined||form.value.recipient==null||form.value.recipient.trim()==""){
  89. ElMessage({
  90. message: "未输入 接收人",
  91. type: "error",
  92. });
  93. return false;
  94. }
  95. if(seqList.value.length==0){
  96. ElMessage({
  97. message: "未选择要入库的流转卡号",
  98. type: "error",
  99. });
  100. return false;
  101. }
  102. form.value.seqList=seqList.value;
  103. form.value.workOrderCode=props.workOrderCode;
  104. addStock(form.value).then(
  105. (data)=>{
  106. if(data.code=="200"){
  107. ElMessage({
  108. message: data.msg,
  109. type: "success",
  110. });
  111. props.stockDialog.visible=false;
  112. }else {
  113. ElMessage({
  114. message: data.msg,
  115. type: "error",
  116. });
  117. }
  118. }
  119. )
  120. }
  121. onMounted(() => {
  122. // console.log("crudRef", crudRef)
  123. search.value.workOrderCode=props.workOrderCode;
  124. //未入库
  125. search.value.isStock="0";
  126. //已完工
  127. search.value.state="2";
  128. dataNoPageList();
  129. });
  130. const seqList=ref([]);
  131. // 设置selection: true,后监听选中改变事件,将Id存入数组
  132. const selectionChanges=(rows) => {
  133. seqList.value=[];
  134. rows?.forEach((element) => {
  135. seqList.value.push({seqId:element.id,seqNo:element.seqNo});
  136. });
  137. }
  138. const onSelectedFinish=(selectedValue)=>{
  139. form.value.recipient=selectedValue.userName;
  140. }
  141. // 设置表格列或者其他自定义的option
  142. option.value = Object.assign(option.value, {
  143. selection: true,
  144. addBtn: false,
  145. editBtn:false,
  146. delBtn:false,
  147. viewBtn:false,
  148. menu:false,
  149. columnBtn: false,
  150. gridBtn: false,
  151. column: [
  152. {
  153. label: "流转卡号",
  154. prop: "seqNo",
  155. },
  156. ],
  157. });
  158. const option2=ref({});
  159. const data2=ref({});
  160. // 设置表格列或者其他自定义的option
  161. option2.value = {
  162. addBtn: false,
  163. editBtn:false,
  164. delBtn:false,
  165. viewBtn:false,
  166. menu:false,
  167. submitBtn:false,
  168. emptyBtn:false,
  169. columnBtn: false,
  170. gridBtn: false,
  171. refreshBtn:false,
  172. column: [
  173. {
  174. label: "接收人",
  175. prop: "recipient",
  176. span:24,
  177. click: ({ value, column }) => {
  178. ctableRef.value.startSelect();
  179. },
  180. rules: [
  181. {
  182. required: true,
  183. message: "请输入接收人",
  184. trigger: "blur",
  185. },
  186. ],
  187. },
  188. {
  189. label: "备注",
  190. prop: "remark",
  191. span:24,
  192. type: "textarea",
  193. },
  194. ],
  195. };
  196. </script>
  197. <style>
  198. .avue-crud__header{min-height: 0px;}
  199. .detail-footer{
  200. float: right;
  201. }
  202. </style>