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.

335 lines
13 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" :disabled="true"></el-input>
  39. </el-form-item>
  40. </el-col>
  41. </el-row>
  42. <el-row :gutter="24">
  43. @*<el-col :span="8">
  44. <el-table-column prop="EATTRIBUTE6" label="检验类型" width="140">
  45. <template slot-scope="scope">
  46. <el-select v-model="scope.row.EATTRIBUTE6" placeholder="请选择" size="mini">
  47. <el-option v-for="item in dataSourceType"
  48. :key="item.Code"
  49. :label="item.Name"
  50. :value="item.Code">
  51. </el-option>
  52. </el-select>
  53. </template>
  54. </el-table-column>
  55. </el-col>*@
  56. <el-col :span="8">
  57. <el-form-item label="检验类型" prop="EATTRIBUTE6">
  58. <el-select v-model="form.EATTRIBUTE6" placeholder="请选择" size="mini" :disabled="true">
  59. <el-option v-for="item in checkAttrList"
  60. :key="item.Code"
  61. :label="item.Name"
  62. :value="item.Code">
  63. </el-option>
  64. </el-select>
  65. </el-form-item>
  66. </el-col>
  67. </el-row>
  68. <el-row :gutter="24">
  69. <el-col :span="8">
  70. <el-form-item label="标准上限" prop="SetValueMax">
  71. <el-input-number v-model="form.SetValueMax" controls-position="right" :min="0" size="small"></el-input-number>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="标准下限" prop="SetValueMin">
  76. <el-input-number v-model="form.SetValueMin" controls-position="right" :min="0" size="small"></el-input-number>
  77. </el-form-item>
  78. </el-col>
  79. </el-row>
  80. <el-row :gutter="24">
  81. <el-col :span="8">
  82. <el-form-item label="单位" prop="Unit">
  83. <el-input v-model="form.Unit" size="mini"></el-input>
  84. </el-form-item>
  85. </el-col>
  86. <el-col :span="8">
  87. <el-form-item label="检验标准" prop="EATTRIBUTE1">
  88. <el-input v-model="form.EATTRIBUTE1" size="mini"></el-input>
  89. </el-form-item>
  90. </el-col>
  91. </el-row>
  92. <el-row :gutter="24">
  93. <el-col :span="8">
  94. <el-form-item label="抽样水准" prop="EATTRIBUTE2">
  95. <el-input v-model="form.EATTRIBUTE2" size="mini"></el-input>
  96. </el-form-item>
  97. </el-col>
  98. <el-col :span="8">
  99. <el-form-item label="允收标准" prop="EATTRIBUTE3">
  100. <el-input v-model="form.EATTRIBUTE3" size="mini"></el-input>
  101. </el-form-item>
  102. </el-col>
  103. </el-row>
  104. <el-row :gutter="24">
  105. <el-col :span="8">
  106. <el-form-item label="检验实际值是否必填" prop="EATTRIBUTE4">
  107. <el-switch v-model="form.EATTRIBUTE4" active-color="#13ce66" inactive-color="#ff4949">
  108. </el-switch>
  109. </el-form-item>
  110. </el-col>
  111. <el-form-item label="AQL代码" prop="EATTRIBUTE5">
  112. <el-select v-model="form.EATTRIBUTE5" placeholder="请选择" size="mini" >
  113. <el-option v-for="item in dataSourceAql"
  114. :key="item.Code"
  115. :label="item.Name"
  116. :value="item.Code">
  117. </el-option>
  118. </el-select>
  119. </el-form-item>
  120. </el-row>
  121. <el-row :gutter="24">
  122. <el-col :span="8">
  123. <el-form-item label="启用" prop="Enable">
  124. <el-switch v-model="form.Enable" active-color="#13ce66" inactive-color="#ff4949">
  125. </el-switch>
  126. </el-form-item>
  127. </el-col>
  128. </el-row>
  129. </el-form>
  130. </template>
  131. </div>
  132. </form>
  133. <script type="text/javascript">
  134. //const { Console } = require("node:console");
  135. var vm = new Vue({
  136. el: '#app',
  137. data: {
  138. id:'',
  139. userCode: "",
  140. ssList: [],
  141. dataSourceAql: [],
  142. form: {},
  143. rules: {
  144. InvCode: [{ required: true, message: '请输入', trigger: 'blur' },],
  145. RulesCode: [{ required: true, message: '请输入', trigger: 'blur' },],
  146. },
  147. disabled4RulesCode: false,
  148. checkAttrList: [],//
  149. },
  150. //挂在DOM 触发
  151. mounted() {
  152. //let reactiveObject = {
  153. // InvCode:'',
  154. // RulesCode: '',
  155. // RulesName: '',
  156. // RulesDesc: '',
  157. // Type: '',
  158. // Enable: true,
  159. //};
  160. //this.form = reactiveObject;
  161. // this.loadGrid();
  162. // this.show();
  163. this.id = '@ViewData["ids"]';
  164. this.initControl();
  165. // console.log(this.id);
  166. },
  167. beforeDestroy() {
  168. // this.autoScrol1(true);
  169. },
  170. methods: {
  171. initControl: function () {
  172. let that = this;
  173. let orgName = '';
  174. this.disabled4RulesCode = this.id ? true : false;
  175. let userName = '@NFine.Code.OperatorProvider.Provider.GetCurrent().UserName';
  176. // console.log(userName);
  177. this.getAllCheckAttr();
  178. this.getData();
  179. this.getAql();
  180. //this.getAllItem();
  181. },
  182. getAllCheckAttr() {
  183. axios
  184. .get('/WMS/BasicSettings/GetICSType?Type=EATTRIBUTE6&TableCode=ICSInspectionList')
  185. .then(function (res) {
  186. //debugger;
  187. if (res.data) {
  188. res.data.forEach(function (el, i) {
  189. Vue.set(vm.checkAttrList, i, el)
  190. });
  191. }
  192. })
  193. .catch(function (error) { // 请求失败处理
  194. alert(error);
  195. });
  196. },
  197. getAql() {
  198. axios
  199. .get('/DHAY/IQCQuality/GetICSAql')
  200. .then(function (res) {
  201. if (res.data && Array.isArray(res.data)) {
  202. res.data.forEach(function (el, i) {
  203. Vue.set(vm.dataSourceAql, i, el);
  204. });
  205. }
  206. //if (res.data) {
  207. // debugger;
  208. // for (var i in res.data) {
  209. // Vue.set(vm.dataSourceAql, i, res.data[i])
  210. // }
  211. // //res.data.forEach(function (el, i) {
  212. // // Vue.set(vm.dataSourceAql, i, el)
  213. // //});
  214. //}
  215. })
  216. .catch(function (error) { // 请求失败处理
  217. alert(error);
  218. });
  219. },
  220. getData() {
  221. if (!this.id) return;
  222. axios
  223. .get('/DHAY/IQCQuality/GetItem2CheckItem?keyValue=' + this.id)
  224. .then(function (res) {
  225. if (res.data) {
  226. for (var i in res.data) {
  227. debugger;
  228. if (res.data[i] == "true") {
  229. res.data[i] = true;
  230. }
  231. Vue.set(vm.form, i, res.data[i]);
  232. }
  233. //res.data.DetailList.forEach(function (el, i) {
  234. // Vue.set(vm.dataSource4Detail, i, el)
  235. //});
  236. }
  237. })
  238. .catch(function (error) { // 请求失败处理
  239. alert(error);
  240. });
  241. },
  242. submitCheck() {
  243. if (this.form.CheckAttr == "001") {
  244. if (!validateFormFields(
  245. this.form,
  246. ["Unit", "SetValueMax", "SetValueMin"],
  247. "当属性为尺寸时,最大值最小值单位必填"
  248. )) {
  249. return false;
  250. }
  251. //if (!this.form.Unit || !this.form.SetValueMax || !this.form.SetValueMin) {
  252. // $.modalMsg("当属性为尺寸时,最大值最小值单位必填", "warning");
  253. // return false;
  254. //}
  255. }
  256. if (this.form.SetValueMax <= this.form.SetValueMin) {
  257. $.modalMsg("下限必须小于上限", "warning");
  258. return false;
  259. }
  260. this.$refs['form'].validate((valid) => {
  261. if (valid) {
  262. //alert('submit!');
  263. $.submitForm({
  264. url: "/DHAY/IQCQuality/SaveItem2CheckItemSingle",
  265. param: { keyValue: JSON.stringify(this.form) },
  266. success: function () {
  267. $.currentWindow().$("#gridList").trigger("reloadGrid");
  268. }
  269. })
  270. } else {
  271. console.log('error submit!!');
  272. return false;
  273. }
  274. });
  275. // console.log(result);
  276. },
  277. },
  278. });
  279. function submitForm() {
  280. //debugger;
  281. vm.submitCheck();
  282. }
  283. @** 验证表单字段是否为空
  284. * @param {Object} form - 表单对象
  285. * @param {Array} fields - 需要验证的字段名数组
  286. * @param {String} errorMsg - 验证失败时显示的错误信息
  287. * @returns {Boolean} - 验证是否通过*@
  288. function validateFormFields(form, fields, errorMsg) {
  289. // 检查每个字段是否为空
  290. for (const field of fields) {
  291. const value = form[field];
  292. if (value === null || value === undefined || value === "") {
  293. $.modalMsg(errorMsg, "warning");
  294. return false;
  295. }
  296. }
  297. return true;
  298. }
  299. </script>