You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

253 lines
9.6 KiB

3 weeks ago
  1. 
  2. @{
  3. ViewBag.Title = "";
  4. Layout = "~/Views/Shared/_Form.cshtml";
  5. }
  6. <script src="~/Content/js/datepicker/WdatePicker.js"></script>
  7. <!--引入 element-ui 的样式,-->
  8. <link rel="stylesheet" href="~/Content/element-ui/lib/theme-chalk/index.css">
  9. <script src="~/Content/vue/dist/vue.js"></script>
  10. <script src="~/Content/element-ui/lib/index.js"></script>
  11. <script src="~/Content/axios.min.js"></script>
  12. <style>
  13. </style>
  14. <form id="form1">
  15. <div id="app">
  16. <template>
  17. <el-form ref="form" :model="form" label-width="150px">
  18. <el-row :gutter="24">
  19. <el-col :span="8">
  20. <el-form-item label="物料编码" prop="InvCode">
  21. <el-input v-model="form.InvCode" size="mini" :disabled="true"></el-input>
  22. </el-form-item>
  23. </el-col>
  24. <el-col :span="8">
  25. <el-form-item label="物料名称" prop="InvName">
  26. <el-input v-model="form.InvName" size="mini" :disabled="true"></el-input>
  27. </el-form-item>
  28. </el-col>
  29. </el-row>
  30. <el-row :gutter="24">
  31. <el-col :span="8">
  32. <el-form-item label="检验项目编码" prop="ListCode">
  33. <el-input v-model="form.ListCode" size="mini" :disabled="true"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="8">
  37. <el-form-item label="检验项目名称" prop="ListName">
  38. <el-input v-model="form.ListName" size="mini" ></el-input>
  39. </el-form-item>
  40. </el-col>
  41. </el-row>
  42. <el-row :gutter="24">
  43. <el-col :span="8">
  44. <el-form-item label="检验属性" prop="CheckAttr">
  45. <el-select v-model="form.CheckAttr" placeholder="请选择" size="mini" :disabled="true">
  46. <el-option v-for="item in checkAttrList"
  47. :key="item.value"
  48. :label="item.label"
  49. :value="item.value">
  50. </el-option>
  51. </el-select>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="8">
  55. <el-form-item label="检验方法" prop="EATTRIBUTE1">
  56. <el-input v-model="form.EATTRIBUTE1" size="mini"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. </el-row>
  60. <el-row :gutter="24">
  61. <el-col :span="8">
  62. <el-form-item label="最大值" prop="SetValueMax">
  63. <el-input-number v-model="form.SetValueMax" controls-position="right" :min="0" size="small"></el-input-number>
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="8">
  67. <el-form-item label="最小值" prop="SetValueMin">
  68. <el-input-number v-model="form.SetValueMin" controls-position="right" :min="0" size="small"></el-input-number>
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. <el-row :gutter="24">
  73. <el-col :span="8">
  74. <el-form-item label="单位" prop="Unit">
  75. <el-input v-model="form.Unit" size="mini"></el-input>
  76. </el-form-item>
  77. </el-col>
  78. <el-col :span="8">
  79. <el-form-item label="启用" prop="Enable">
  80. <el-switch v-model="form.Enable" active-color="#13ce66" inactive-color="#ff4949">
  81. </el-switch>
  82. </el-form-item>
  83. </el-col>
  84. </el-row>
  85. </el-form>
  86. </template>
  87. </div>
  88. </form>
  89. <script type="text/javascript">
  90. //const { Console } = require("node:console");
  91. var vm = new Vue({
  92. el: '#app',
  93. data: {
  94. id:'',
  95. userCode: "",
  96. ssList: [],
  97. form: {},
  98. rules: {
  99. InvCode: [{ required: true, message: '请输入', trigger: 'blur' },],
  100. RulesCode: [{ required: true, message: '请输入', trigger: 'blur' },],
  101. },
  102. disabled4RulesCode: false,
  103. checkAttrList: [],//
  104. },
  105. //挂在DOM 触发
  106. mounted() {
  107. //let reactiveObject = {
  108. // InvCode:'',
  109. // RulesCode: '',
  110. // RulesName: '',
  111. // RulesDesc: '',
  112. // Type: '',
  113. // Enable: true,
  114. //};
  115. //this.form = reactiveObject;
  116. // this.loadGrid();
  117. // this.show();
  118. this.id = '@ViewData["ids"]';
  119. this.initControl();
  120. // console.log(this.id);
  121. },
  122. beforeDestroy() {
  123. // this.autoScrol1(true);
  124. },
  125. methods: {
  126. initControl: function () {
  127. let that = this;
  128. let orgName = '';
  129. this.disabled4RulesCode = this.id ? true : false;
  130. let userName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName';
  131. // console.log(userName);
  132. this.getAllCheckAttr();
  133. this.getData();
  134. //this.getAllItem();
  135. },
  136. getAllCheckAttr() {
  137. axios
  138. .get('/BBWMS/IQCQuality/GetSelectItemList?keyValue=CheckAttr')
  139. .then(function (res) {
  140. //debugger;
  141. if (res.data) {
  142. res.data.forEach(function (el, i) {
  143. Vue.set(vm.checkAttrList, i, el)
  144. });
  145. }
  146. })
  147. .catch(function (error) { // 请求失败处理
  148. alert(error);
  149. });
  150. },
  151. getData() {
  152. if (!this.id) return;
  153. axios
  154. .get('/BBWMS/IQCQuality/GetItem2CheckItem?keyValue=' + this.id)
  155. .then(function (res) {
  156. if (res.data) {
  157. for (var i in res.data) {
  158. Vue.set(vm.form, i, res.data[i]);
  159. }
  160. //res.data.DetailList.forEach(function (el, i) {
  161. // Vue.set(vm.dataSource4Detail, i, el)
  162. //});
  163. }
  164. })
  165. .catch(function (error) { // 请求失败处理
  166. alert(error);
  167. });
  168. },
  169. submitCheck() {
  170. if (this.form.CheckAttr == "001") {
  171. debugger;
  172. if (!validateFormFields(
  173. this.form,
  174. ["Unit", "SetValueMax", "SetValueMin"],
  175. "当属性为尺寸时,最大值最小值单位必填"
  176. )) {
  177. return false;
  178. }
  179. //if (!this.form.Unit || !this.form.SetValueMax || !this.form.SetValueMin) {
  180. // $.modalMsg("当属性为尺寸时,最大值最小值单位必填", "warning");
  181. // return false;
  182. //}
  183. if (this.form.SetValueMax <= this.form.SetValueMin) {
  184. $.modalMsg("下限必须小于上限", "warning");
  185. return false;
  186. }
  187. }
  188. this.$refs['form'].validate((valid) => {
  189. if (valid) {
  190. //alert('submit!');
  191. $.submitForm({
  192. url: "/BBWMS/IQCQuality/SaveItem2CheckItemSingle",
  193. param: { keyValue: JSON.stringify(this.form) },
  194. success: function () {
  195. $.currentWindow().$("#gridList").trigger("reloadGrid");
  196. }
  197. })
  198. } else {
  199. console.log('error submit!!');
  200. return false;
  201. }
  202. });
  203. // console.log(result);
  204. },
  205. },
  206. });
  207. function submitForm() {
  208. //debugger;
  209. vm.submitCheck();
  210. }
  211. @** 验证表单字段是否为空
  212. * @param { Object } form - 表单对象
  213. * @param { Array } fields - 需要验证的字段名数组
  214. * @param { String } errorMsg - 验证失败时显示的错误信息
  215. * @returns { Boolean } - 验证是否通过 *@
  216. function validateFormFields(form, fields, errorMsg) {
  217. // 检查每个字段是否为空
  218. for (const field of fields) {
  219. const value = form[field];
  220. if (value === null || value === undefined || value === "") {
  221. $.modalMsg(errorMsg, "warning");
  222. return false;
  223. }
  224. }
  225. return true;
  226. }
  227. </script>