From 02104d85e7e2f6e495274591892d6028169d2323 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 01 Aug 2025 18:18:26 +0800 Subject: [PATCH] feat(ai): 新增产品题目功能 --- src/main/resources/templates/febs/views/modules/ai/productQuestion/add.html | 161 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 132 insertions(+), 29 deletions(-) diff --git a/src/main/resources/templates/febs/views/modules/ai/productQuestion/add.html b/src/main/resources/templates/febs/views/modules/ai/productQuestion/add.html index 8884723..ed46c36 100644 --- a/src/main/resources/templates/febs/views/modules/ai/productQuestion/add.html +++ b/src/main/resources/templates/febs/views/modules/ai/productQuestion/add.html @@ -19,45 +19,44 @@ </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> - <label class="layui-form-label febs-form-item-require">标题:</label> + <label class="layui-form-label febs-form-item-require">题目:</label> <div class="layui-input-block"> <input type="text" name="title" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> </div> </div> </div> - <div class="layui-row layui-col-space10 layui-form-item"> - <div class="layui-col-lg6"> - <label class="layui-form-label febs-form-item-require">答案:</label> - <div class="layui-input-block"> - <input type="text" name="answer" lay-verify="required" - placeholder="" autocomplete="off" class="layui-input"> - </div> - </div> - </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> - <label class="layui-form-label febs-form-item-require">正确答案:</label> + <label class="layui-form-label febs-form-item-require">难度:</label> <div class="layui-input-block"> - <input type="radio" name="correctAnswer" value="1" title="是" > - <input type="radio" name="correctAnswer" value="2" title="否" checked=""> + <input type="radio" name="difficulty" value="1" title="简单" checked=""> + <input type="radio" name="difficulty" value="2" title="中等" > + <input type="radio" name="difficulty" value="3" title="困难" > </div> </div> </div> + <div class="layui-form-item multi-sku-table"> + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">答案:</label> + </div> + <div class="layui-col-lg1"> + <button type="button" + class="layui-btn layui-btn-normal layui-btn" id="test3"> + 添加 + </button> + </div> + </div> - <div class="layui-form-item"> - <label class="layui-form-label febs-form-item-require">详情:</label> - <div class="layui-input-block"> - <div style="border: 1px solid #ccc;"> - <div id="product-point-toolbar-container" class="toolbar"></div> - <div id="product-point-text-container" class="text" style="height: 450px;"></div> + <div class="layui-form-item"> + <div class="layui-input-block"> + <table id="multiSku" lay-filter="multiSku"></table> </div> </div> </div> - - </div> </div> @@ -71,6 +70,11 @@ </div> </div> </div> +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delSku">删除</button> + </div> +</script> <!-- 表格操作栏 end --> <script data-th-inline="javascript"> @@ -121,18 +125,117 @@ }); }) - form.on('select(point-type-select)', function(data){ - $('.tc-set').each(function() { - if (data.value == 2) { - $(this).show(); - } else { - $(this).hide(); + var tableSkuData=[]; + var tableIns = table.render({ + elem: '#multiSku' + ,limit:999 + ,toolbar:"#toolbar" + ,defaultToolbar:[] + ,cols: [[ //表头 + {type: 'checkbox'} + ,{field: 'index', title: '序号', width:70} + ,{field: 'answer', title: '答案', edit:'text', width:500} + ,{field: 'correctAnswer', title: '正确答案', templet: function(d){ + var options = ''; + if(d.correctAnswer == 1) { + options = '<option value="0">否</option><option value="1" selected>是</option>'; + } else { + options = '<option value="0" selected>否</option><option value="1">是</option>'; + } + return '<select lay-ignore name="correctAnswer" lay-filter="correctAnswerSelect">' + options + '</select>'; + }, width:200} + ,{field: 'answerAnalysis', title: '答案解析', edit:'text', width:500} + ]] + ,data: [] + }); + + // 监听下拉框变化 + $(document).on('change', 'select[name="correctAnswer"]', function() { + var selectIndex = $(this).closest('tr').index(); // 获取行索引 + var newValue = $(this).val(); // 获取新值 + + // 更新表格数据 + var hasData = table.cache['multiSku']; + if (hasData && hasData[selectIndex]) { + hasData[selectIndex].correctAnswer = parseInt(newValue); + + // 更新全局数据 + for (let i = 0; i < tableSkuData.length; i++) { + if (tableSkuData[i].index == hasData[selectIndex].index) { + tableSkuData[i].correctAnswer = parseInt(newValue); + break; + } } - }) + } + }); + + + table.on('toolbar(multiSku)', function(obj){ + var data = obj.data; + + var hasData = table.cache['multiSku']; + var checkData = table.checkStatus('multiSku').data; + + if (checkData.length <= 0) { + febs.alert.warn('请选择删除数据'); + return; + } + if(obj.event === 'delSku'){ + for (let i = 0; i < checkData.length; i++) { + var delData = checkData[i]; + for (let j = 0; j < hasData.length; j++) { + if (hasData[j].index == delData.index) { + hasData.splice(j, 1); + break; + } + } + } + + for (let i = 0; i < hasData.length; i++) { + hasData[i].index = i + 1; + } + + tableSkuData=hasData; + reloadTable(hasData); + } + }); + + function addTableDate(data) { + var hasData = table.cache['multiSku']; + + data.index = hasData.length + 1; + tableSkuData.push(data); + + reloadTable(tableSkuData); + return data.index; + } + + function reloadTable(data) { + table.reload('multiSku', { + data : data + }); + } + + table.on('edit(multiSku)', function(obj){ + var value = obj.value //得到修改后的值 + ,data = obj.data //得到所在行所有键值 + ,field = obj.field; //得到字段 + + for (let i = 0; i < tableSkuData.length; i++) { + if (tableSkuData[i].index == data.index) { + tableSkuData[i] = data; + } + } + }); + + $('#test3').on('click', function (){ + var data = {}; + addTableDate(data); }); form.on('submit(productQuestion-add-form-submit)', function (data) { - data.field.description = editor.txt.html(); + data.field.productCategoryId = category.getValue('valueStr'); + data.field.aiProductQuestionItems = tableSkuData; $.ajax({ 'url':ctx + 'admin/productQuestion/add', 'type':'post', -- Gitblit v1.9.1