Explorar o código

计算含水率

duy %!s(int64=2) %!d(string=hai) anos
pai
achega
ef8508c43e

+ 8 - 0
src/api/modules/data-fill/wbs.js

@@ -341,4 +341,12 @@ export default {
             data: form,
         }, msg)
     },
+    //计算含水率
+    async calculateWater(form, msg = true) {
+        return httpApi({
+            url: '/api/blade-manager/mixProportion/calculateWater',
+            method: 'post',
+            data: form,
+        }, msg)
+    },
 }

+ 5 - 2
src/components/plugins/table-form/hc-form-select-search2.vue

@@ -12,6 +12,7 @@ import { nextTick, ref } from 'vue'
 import { getDapSiteData, getDesignStrengthList } from '~api/other'
 import { ElOption, ElSelect } from 'z-element-plus'
 import { arrIndex, getObjVal, getObjValue } from 'js-fast-way'
+import { setStoreValue } from '~src/utils/storage'
 
 const props = defineProps({
     val: {
@@ -28,7 +29,7 @@ const props = defineProps({
     },
     placeholder: {
         type: [Number, String],
-        default: '搜索',
+        default: '选择设计强度',
     },
     contractId: {
         type: [Number, String],
@@ -48,7 +49,7 @@ const selectVal = ref(props.val)
 
 //加载完成
 nextTick(() => {
-    console.log(props, 'props')
+ 
     if (props.keyname && props.type) {
         setTableFormRemoteMethod(props.keyname, props.type)
     }
@@ -57,7 +58,9 @@ nextTick(() => {
 //获取下拉框设计强度筛选数据
 const setTableFormRemoteMethod = async (key, type) => {
  if (type === 'strength_search') {
+    console.log(key, 'key')
         await getDesignStrengthListApi(key)//设计强度搜索
+        setStoreValue('strengthKeys', key)//存储设计强度值
     }
 }
 

+ 24 - 5
src/views/data-fill/collapse-form/index.vue

@@ -393,13 +393,14 @@
     </HcDialog>
 
     <!-- 含水率 -->
-    <HcDialog is-to-body :show="waterModal" title="这是测试弹窗" @close="waterModalClose" @save="waterSaveClick">
-        <HcWater v-if="waterModal" />
+    <HcDialog is-to-body :show="waterModal" title="含水率" @close="waterModalClose" @save="waterSaveClick">
+        <HcWater v-if="waterModal" ref="waterRefs" :key-name="tableFormItemNode.KeyName" :contract-id="contract_id" :design-strength="designStrength" />
     </HcDialog>
 </template>
 
 <script setup>
 import { nextTick, onActivated, onDeactivated, onMounted, onUnmounted, ref, watch } from 'vue'
+import { getStoreValue } from '~src/utils/storage'
 import HTableForm from '~src/plugins/HTableForm'
 import { useAppStore } from '~src/store'
 import wbsApi from '~api/data-fill/wbs'
@@ -740,7 +741,18 @@ const handleMenuSelect = async ({ key }) => {
 
     } else if (key === 'water') {
         console.log('含水率')
-        waterModal.value = true
+      
+        const { pkeyId } = tableFormItemNode.value
+        const refs = await getFormRef(pkeyId)
+        const formData = refs?.getFormData()
+        const strengthKeys = getStoreValue('strengthKeys')//获取设计强度值
+        designStrength.value = formData[strengthKeys]
+        if ( designStrength.value) {
+            waterModal.value = true
+        } else {
+            window.$message.warning('请先选择设计强度')
+        }
+       
     }
 }
 
@@ -1599,9 +1611,16 @@ const waterModal = ref(false)
 const waterModalClose = ()=>{
     waterModal.value = false
 }
-const waterSaveClick = ()=>{
-    console.log(111111111)
+const waterRefs = ref(null)
+const designStrength = ref('')//设计强度值
+const waterSaveClick = async ()=>{
+    let resdata = await waterRefs.value?.waterSave()
+    const { pkeyId } = tableFormItemNode.value
+    const refs = await getFormRef(pkeyId)
+     refs?.setFormData(resdata)
+    waterModal.value = false
 }
+
 // 暴露出去
 defineExpose({
     getFormData,

+ 60 - 9
src/views/data-fill/collapse-form/water.vue

@@ -1,18 +1,27 @@
 <!--  -->
 <template>
     <div>
+        <el-alert
+            :closable="false"
+            class="hc-alert"
+            show-icon
+            style=""
+            title=" 填写之前请务必保证已选择设计配合比等级 (否则计算式不生效),
+            通过含水率与设计配合比数据计算出含水量,通过设计配合比与含水量计算出施工配合比"
+            type="warning"
+        />
         <el-form ref="waterRormref" :model="waterModal" label-width="auto" size="large">
-            <el-form-item label="黄砂">
-                <el-input v-model="waterModal.value1" placeholder="请输入" />
+            <el-form-item label="黄砂">
+                <el-input v-model="waterModal.sand" placeholder="请输入" />
             </el-form-item>
-            <el-form-item label="碎(砾)石1">
-                <el-input v-model="waterModal.value2" placeholder="请输入" />
+            <el-form-item label="碎(砾)石1">
+                <el-input v-model="waterModal.macadamOne" placeholder="请输入" />
             </el-form-item>
-            <el-form-item label="碎(砾)石2">
-                <el-input v-model="waterModal.value3" placeholder="请输入" />
+            <el-form-item label="碎(砾)石2">
+                <el-input v-model="waterModal.macadamTwo" placeholder="请输入" />
             </el-form-item>
-            <el-form-item label="碎(砾)石3">
-                <el-input v-model="waterModal.value4" placeholder="请输入" />
+            <el-form-item label="碎(砾)石3">
+                <el-input v-model="waterModal.macadamThree" placeholder="请输入" />
             </el-form-item>
         </el-form>
     </div>
@@ -20,8 +29,50 @@
 
 <script setup>
 import { ref, watch } from 'vue'
-const waterRormref = ref(null)
+import wbsApi from '~api/data-fill/wbs'
+const props = defineProps({
+    contractId: [String, Number],
+    keyName: [String, Number],
+    designStrength:[String, Number],
+})
+const key_name = ref(props.keyName)
+const contractId = ref(props.contractId)
+const design_strength = ref(props.designStrength)
 const waterModal = ref({})
+const waterRormref = ref(null)
+
+//监听
+watch(() => [
+    props.contractId,
+    props.keyName,
+    props.designStrength,
+
+], ([cid, keyName, strength]) => {
+    contractId.value = cid
+    key_name.value = keyName
+    design_strength.value = strength
+},
+
+)
+
+
+const waterSave = async ()=>{
+    const { error, code, data } = await wbsApi.calculateWater({
+        ...waterModal.value,
+        key: key_name.value,
+        contractId: contractId.value,
+        designStrength: design_strength.value,
+    })
+    if (!error && code === 200) {
+        window?.$message?.success('操作成功')
+        return data
+    }
+}
+
+// 暴露出去
+defineExpose({
+    waterSave,
+})
 </script>
 
 <style lang='scss' scoped>