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.

308 lines
12 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="80px">
  18. <el-divider>搜索区域</el-divider>
  19. <el-row :gutter="24">
  20. <el-col :span="6">
  21. <el-form-item label="物料编码" prop="itemCode">
  22. <el-input v-model="itemCode" size="mini" ></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="6">
  26. <el-form-item label="Aql编码" prop="aqlCode">
  27. <el-input v-model="aqlCode" size="mini"></el-input>
  28. </el-form-item>
  29. </el-col>
  30. <el-col :span="6">
  31. <el-form-item label="检验属性" prop="EATTRIBUTE1">
  32. <el-select v-model="item2Rule.EATTRIBUTE1" placeholder="请选择" size="mini" v-on:change="change4EATTRIBUTE1">
  33. <el-option v-for="item in checkAttrList"
  34. :key="item.value"
  35. :label="item.label"
  36. :value="item.value">
  37. </el-option>
  38. </el-select>
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="6">
  42. <button id="btn_search" type="button" class="btn btn-primary" v-on:click="query()"><i class="fa fa-search"></i>查询</button>
  43. </el-col>
  44. </el-row>
  45. <el-divider>选择区域</el-divider>
  46. <el-row :gutter="24">
  47. <el-col :span="12">
  48. <el-table ref="dataSource4Left" highlight-current-row
  49. :data="dataSource4Left"
  50. style="width: 100%"
  51. stripe border
  52. size="mini"
  53. height="500"
  54. v-on:selection-change="handleSelectionChange4Left"
  55. >
  56. <el-table-column type="index" width="50"></el-table-column>
  57. <el-table-column type="selection" width="55"> </el-table-column>
  58. <el-table-column prop="InvCode" label="料品编码" width="140">
  59. </el-table-column>
  60. <el-table-column prop="InvName" label="料品名称" width="140">
  61. </el-table-column>
  62. </el-table>
  63. </el-col>
  64. <el-col :span="12">
  65. <el-table ref="rightTable" highlight-current-row
  66. :data="dataSource4Right"
  67. style="width: 100%"
  68. stripe border
  69. size="mini"
  70. height="500"
  71. v-on:current-change="handleCurrentChange4Right">
  72. <el-table-column type="index" width="50"></el-table-column>
  73. <el-table-column prop="RulesCode" label="Aql编码" width="140">
  74. </el-table-column>
  75. <el-table-column prop="RulesName" label="Aql名称" width="140">
  76. </el-table-column>
  77. <el-table-column prop="RulesDesc" label="Aql描述" width="140">
  78. </el-table-column>
  79. </el-table>
  80. </el-col>
  81. </el-row>
  82. </el-form>
  83. </template>
  84. </div>
  85. </form>
  86. <script type="text/javascript">
  87. //const { Console } = require("node:console");
  88. var vm = new Vue({
  89. el: '#app',
  90. data: {
  91. id:'',
  92. userCode: "",
  93. ssList: [],
  94. form: {},
  95. detail: {
  96. key:0,
  97. SetValueMin: 0,
  98. SetValueMax: 0,
  99. SampleQuantity: 0,
  100. EATTRIBUTE1: 0,
  101. EATTRIBUTE2: 0,
  102. EATTRIBUTE3: 0,
  103. },
  104. dataSource4Detail: [],
  105. currentRow4Right: null,//规则单选
  106. rules: {
  107. RulesCode: [{ required: true, message: '请输入', trigger: 'blur' },],
  108. RulesName: [{ required: true, message: '请输入', trigger: 'blur' },],
  109. },
  110. disabled4RulesCode: false,
  111. itemCode: '',
  112. aqlCode: '',
  113. dataSource4Left: [],
  114. dataSource4Right: [],
  115. item2Rule: {
  116. ItemList: [],
  117. AqlList: [],
  118. EATTRIBUTE1:''
  119. },
  120. multipleSelection: [], //物料多选
  121. // EATTRIBUTE1: '',
  122. checkAttrList: [],//
  123. },
  124. //挂在DOM 触发
  125. mounted() {
  126. let reactiveObject = {
  127. RulesCode: '',
  128. RulesName: '',
  129. RulesDesc: '',
  130. Type: '',
  131. Enable: true,
  132. DetailList: [],
  133. };
  134. this.form = reactiveObject;
  135. // this.loadGrid();
  136. // this.show();
  137. this.id = '@ViewData["ids"]';
  138. this.initControl();
  139. this.getAllCheckAttr();
  140. // console.log(this.id);
  141. },
  142. beforeDestroy() {
  143. // this.autoScrol1(true);
  144. },
  145. methods: {
  146. change4EATTRIBUTE1(val) {
  147. // console.log(val);
  148. //let currentSelect = this.checkAttrList.filter(x => x.value == val)[0];
  149. //// console.log(currentSelect);
  150. //if (currentSelect)
  151. // this.disabled4SetValue = currentSelect.Ext1 == "尺寸" ? false : true;
  152. //else {
  153. // this.disabled4SetValue = true;
  154. //}
  155. },
  156. getAllCheckAttr() {
  157. axios
  158. .get('/BBWMS/IQCQuality/GetSelectItemList?keyValue=CheckAttr')
  159. .then(function (res) {
  160. //debugger;
  161. if (res.data) {
  162. res.data.forEach(function (el, i) {
  163. Vue.set(vm.checkAttrList, i, el)
  164. });
  165. }
  166. })
  167. .catch(function (error) { // 请求失败处理
  168. alert(error);
  169. });
  170. },
  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.getData();
  178. //this.getAllItem();
  179. //this.getAllAql();
  180. },
  181. getAllItem() {
  182. axios
  183. .get('/BBWMS/IQCQuality/GetAllItemList?code=' + this.itemCode.trim())
  184. .then(function (res) {
  185. //debugger;
  186. if (res.data) {
  187. res.data.forEach(function (el, i) {
  188. Vue.set(vm.dataSource4Left, i, el)
  189. });
  190. }
  191. })
  192. .catch(function (error) { // 请求失败处理
  193. alert(error);
  194. });
  195. },
  196. getAllAql() {
  197. axios
  198. .get('/BBWMS/IQCQuality/GetAllAqlList?code=' + this.aqlCode.trim())
  199. .then(function (res) {
  200. if (res.data) {
  201. res.data.forEach(function (el, i) {
  202. Vue.set(vm.dataSource4Right, i, el)
  203. });
  204. }
  205. })
  206. .catch(function (error) { // 请求失败处理
  207. alert(error);
  208. });
  209. },
  210. getData() {
  211. if (!this.id) return;
  212. axios
  213. .get('/BBWMS/IQCQuality/GetAql?keyValue=' + this.id)
  214. .then(function (res) {
  215. if (res.data) {
  216. for (var i in res.data) {
  217. Vue.set(vm.form, i, res.data[i]);
  218. }
  219. res.data.DetailList.forEach(function (el, i) {
  220. Vue.set(vm.dataSource4Detail, i, el)
  221. });
  222. }
  223. })
  224. .catch(function (error) { // 请求失败处理
  225. alert(error);
  226. });
  227. },
  228. query() {
  229. debugger;
  230. this.itemCode = this.itemCode.trim();
  231. this.aqlCode = this.aqlCode.trim();
  232. if (this.itemCode) {
  233. // this.dataSource4Left = this.dataSource4Left.filter(x => x.InvCode.includes(this.itemCode));
  234. this.getAllItem();
  235. }
  236. if (this.aqlCode) {
  237. // this.dataSource4Right = this.dataSource4Right.filter(x => x.RulesCode.includes(this.aqlCode));
  238. this.getAllAql();
  239. }
  240. },
  241. handleCurrentChange4Right(val) {
  242. this.currentRow4Right = val;
  243. },
  244. handleSelectionChange4Left(val) {
  245. this.multipleSelection = val;
  246. },
  247. submitCheck() {
  248. //console.log(this.multipleSelection);
  249. //console.log(this.currentRow4Right);
  250. debugger;
  251. if (!this.currentRow4Right) {
  252. $.modalMsg("必须选择规则行", "warning");
  253. return false;
  254. }
  255. // this.item2Rule.EATTRIBUTE1 = this.EATTRIBUTE1;
  256. this.item2Rule.ItemList = this.multipleSelection;
  257. this.item2Rule.AqlList = [this.currentRow4Right];
  258. if (!this.item2Rule.EATTRIBUTE1) {
  259. $.modalMsg("必须选择检验属性", "warning");
  260. return false;
  261. }
  262. if (this.item2Rule.ItemList.length == 0 || this.item2Rule.AqlList.length == 0) {
  263. $.modalMsg("必须选择物料行,规则行", "warning");
  264. return false;
  265. }
  266. this.$refs['form'].validate((valid) => {
  267. if (valid) {
  268. //alert('submit!');
  269. $.submitForm({
  270. url: "/BBWMS/IQCQuality/SaveItem2Aql",
  271. param: { keyValue: JSON.stringify(this.item2Rule) },
  272. success: function () {
  273. $.currentWindow().$("#gridList").trigger("reloadGrid");
  274. }
  275. })
  276. } else {
  277. console.log('error submit!!');
  278. return false;
  279. }
  280. });
  281. // console.log(result);
  282. },
  283. },
  284. });
  285. function submitForm() {
  286. //debugger;
  287. vm.submitCheck();
  288. }
  289. </script>