check-task.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-crud
  4. ref="crudRef"
  5. v-model:search="search"
  6. v-model="form"
  7. :data="data"
  8. :option="option"
  9. v-model:page="page"
  10. @row-save="createRow"
  11. @row-update="updateRow"
  12. @row-del="deleteRow"
  13. @search-change="searchChange"
  14. @search-reset="resetChange"
  15. @size-change="dataList"
  16. @current-change="dataList"
  17. @selection-change="selectionChange1"
  18. >
  19. <template #menu="{size,row,index}">
  20. <el-button @click="deleteTep(row.id)" text type="primary" v-if ="info.workOrderState === '1' || info.workOrderState === '2' || info.workOrderState === '0'"
  21. >删除</el-button
  22. >
  23. </template>
  24. <template #menu-left="{}">
  25. <el-button
  26. v-if ="info.workOrderState === '1' || info.workOrderState === '2' || info.workOrderState === '0'"
  27. type="primary"
  28. icon="el-icon-plus"
  29. @click="addObj"
  30. >新增</el-button>
  31. </template>
  32. </avue-crud>
  33. <el-dialog
  34. v-model="editDialog.visible"
  35. :title="editDialog.title"
  36. width="650px"
  37. @close="handleClose"
  38. >
  39. <el-form
  40. ref="taskFormRef"
  41. status-icon
  42. :model="taskForm"
  43. :rules="rules"
  44. label-width="auto"
  45. class="demo-ruleForm">
  46. <el-form-item label="任务名称" prop="formName">
  47. <el-input v-model="taskForm.formName">
  48. </el-input>
  49. </el-form-item>
  50. <el-form-item label="Excel模板" prop="baseFormIds">
  51. <el-select v-model="taskForm.baseFormIds" multiple placeholder="Select">
  52. <el-option
  53. v-for="item in options"
  54. :key="item.value"
  55. :label="item.label"
  56. :value="item.value"
  57. />
  58. </el-select>
  59. </el-form-item>
  60. </el-form>
  61. <template #footer>
  62. <div class="dialog-footer">
  63. <el-button @click="handleClose">取消</el-button>
  64. <el-button type="primary" @click="onSelected"> 确定 </el-button>
  65. </div>
  66. </template>
  67. </el-dialog>
  68. </div>
  69. </template>
  70. <script setup>
  71. import {defineProps, ref} from "vue";
  72. import { getForm, add, deleteTemp } from "@/api/excel";
  73. import { useCrud } from "@/hooks/userCrud";
  74. import { useCommonStoreHook,useDictionaryStore } from "@/store";
  75. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  76. const toPrintRef = ref(null);
  77. const options = ref([]);
  78. const test = () => {
  79. isShowTable.value = true;
  80. tableType.value = tableType.value == 1 ? 2 : 1;
  81. };
  82. const taskFormRef = ref();
  83. const taskForm = ref({
  84. formName: "",
  85. baseFormIds: "",
  86. workOrderId: ""
  87. });
  88. const rules = reactive({
  89. formName: [{ required: true, trigger: "blur" }],
  90. baseFormIds: [{ required: true, trigger: "blur" }],
  91. });
  92. const editDialog = ref({ visible: false, title: "绑定模版" });
  93. const value1 = ref([]);
  94. const info = ref({})
  95. const props = defineProps({
  96. workOrderInfo: {
  97. type: Object,
  98. default: () => {
  99. return null;
  100. }
  101. }
  102. })
  103. const handleClose = () => {
  104. editDialog.value.visible = false;
  105. value1.value = [];
  106. };
  107. const dialog = reactive({
  108. title: "二维码打印",
  109. visible: false,
  110. });
  111. const clickObjs = ref([])
  112. const selectionChange1 =(row)=>{
  113. toDeleteIds.value = [];
  114. row?.forEach((element) => {
  115. toDeleteIds.value.push(element.id);
  116. });
  117. clickObjs.value = row
  118. }
  119. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  120. const addObj =()=>{
  121. editDialog.value.visible = true
  122. }
  123. const deleteTep = async (id) => {
  124. const { data, code } = await deleteTemp({
  125. id,
  126. });
  127. if (code == "200") {
  128. ElMessage.success("删除成功!");
  129. dataList();
  130. }
  131. };
  132. //新增
  133. const onSelected = () => {
  134. taskFormRef.value.validate((valid) => {
  135. if (valid) {
  136. add(taskForm.value).then((data)=>{
  137. if (data.code == "200") {
  138. ElMessage.success("添加成功!");
  139. dataList();
  140. handleClose();
  141. taskForm.value.baseFormIds = []
  142. taskForm.value.formName = ''
  143. }else{
  144. ElMessage.error(data.msg);
  145. }
  146. })
  147. }
  148. });
  149. };
  150. //获取Excel模版列表
  151. const getTemplate = async () => {
  152. const { data } = await getForm({
  153. pageNo: 1,
  154. pageSize: 9999999,
  155. queryCheck: true
  156. });
  157. options.value = [];
  158. data.records.forEach((element) => {
  159. options.value.push({
  160. value: element.id,
  161. label: element.formName,
  162. });
  163. });
  164. };
  165. watch(
  166. () => props.workOrderInfo,
  167. () => {
  168. form.value.workOrderCode = props.workOrderInfo.workOrderCode
  169. info.value = props.workOrderInfo
  170. search.value.workOrderCode = props.workOrderInfo.workOrderCode
  171. dataList();
  172. }
  173. );
  174. // 传入一个url,后面不带/
  175. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  176. useCrud({
  177. src: "/api/v1/opExcelForm",
  178. });
  179. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
  180. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  181. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  182. const { dicts } = useDictionaryStore();
  183. // 设置表格列或者其他自定义的option
  184. option.value = Object.assign(option.value, {
  185. delBtn: false,
  186. selection: false,
  187. search: false,
  188. filterBtn: false,
  189. columnBtn: false,
  190. editBtn: false,
  191. addBtn: false,
  192. viewBtn: false,
  193. menu: true,
  194. column: [
  195. {
  196. label: "任务名称",
  197. prop: "formName",
  198. addDisabled: true,
  199. editDisabled: true,
  200. },
  201. {
  202. label: "模版类型",
  203. prop: "formType",
  204. addDisabled: true,
  205. editDisabled: true,
  206. dicData: dicts.excel_type,
  207. props: { label: "dictLabel", value: "dictValue" },
  208. },
  209. {
  210. label: "修改时间",
  211. prop: "updated",
  212. addDisabled: true,
  213. editDisabled: true,
  214. },
  215. {
  216. label: "操作人",
  217. prop: "updator",
  218. addDisabled: true,
  219. editDisabled: true,
  220. },
  221. ],
  222. });
  223. onMounted(() => {
  224. info.value = props.workOrderInfo
  225. taskForm.value.workOrderId = info.value.id
  226. form.value.workOrderId = props.workOrderInfo.id
  227. search.value.workOrderId = props.workOrderInfo.id
  228. dataList();
  229. getTemplate()
  230. });
  231. </script>