luohailiang пре 2 година
родитељ
комит
57118b081f

+ 18 - 14
src/views/fxxt/ltxsgl/index.vue

@@ -6,13 +6,12 @@
           v-model="firstForm.grade"
           placeholder="请选择年级"
           clearable
-          @change="getListData"
+          @change="changeGrade"
         >
           <el-option
             v-for="item in gradeList"
             :label="item.grade_name"
             :value="item.grade_id"
-            :key="item.grade_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -27,7 +26,6 @@
             v-for="item in classList"
             :label="item.class_name"
             :value="item.class_id"
-            :key="item.class_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -60,15 +58,12 @@
         </el-date-picker>
       </el-form-item>
       <div class="mb20">
-        <el-button type="primary" class="ml5" @click="getListData"
+        <el-button type="primary" @click="getListData"
           >搜索</el-button
         >
-        <el-button type="primary" class="ml5" @click="clearData"
-          >清空</el-button
-        >
       </div></el-form
     >
-    <el-button type="primary" @click="exportAll">导出</el-button>
+    <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
 
     <el-table
       :data="tableData"
@@ -76,10 +71,10 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
-
       <el-table-column label="班级" prop="class_name" width="150">
       </el-table-column>
       <el-table-column label="放学日期" prop="xdfxx_fxrq" width="150">
@@ -95,7 +90,7 @@
       </el-table-column>
       <el-table-column label="年龄" prop="xdfxx_xsnl" width="100">
       </el-table-column>
-      <el-table-column label="放学状态" prop="xdfxx_fxzt" width="120">
+      <el-table-column label="放学状态" prop="xdfxx_fxzt">
         <template slot-scope="scope">
           <span class="text-red">{{ scope.row.xdfxx_fxzt }}</span>
         </template>
@@ -150,14 +145,24 @@ export default {
         class: "",
       },
       loading: false,
+      multipleSelection:[]
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.xdfxx_xsxh)
+      })
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
     },
-
+    changeGrade() {
+      this.getListData();
+      this.classListData();
+    },
     getListData() {
       this.loading = true;
       let data = {
@@ -169,8 +174,6 @@ export default {
         xdfxx_fxrq: this.xdfxx_fxrq,
         grade_id: this.firstForm.grade,
         class_id: this.firstForm.class,
-
-        grade_id: this.grade_id,
         xdfxx_fxzt: "3",
       };
 
@@ -201,6 +204,7 @@ export default {
     classListData() {
       let data = {
         page: 1,
+        grade_id:this.firstForm.grade,
         limit: 9999,
       };
       class_search(data).then((res) => {
@@ -218,7 +222,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_fxxt_xsfx_xs/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token+'&xdfxx_fxzt=3&xdfxx_xsxh='+this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     // detailData() {

+ 20 - 13
src/views/fxxt/xsfxgl/bjlb/index.vue

@@ -6,13 +6,12 @@
           v-model="firstForm.grade"
           placeholder="请选择年级"
           clearable
-          @change="getListData"
+          @change="changeGrade"
         >
           <el-option
             v-for="item in gradeList"
             :label="item.grade_name"
             :value="item.grade_id"
-            :key="item.grade_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -44,16 +43,11 @@
         >
         </el-date-picker>
       </el-form-item>
-      <div class="mb20">
-        <el-button type="primary" class="ml5" @click="getListData"
-          >搜索</el-button
-        >
-        <el-button type="primary" class="ml5" @click="clearData"
-          >清空</el-button
-        >
-      </div></el-form
-    >
-    <el-button type="primary" @click="exportAll">导出</el-button>
+      <el-button type="primary" class="ml5" @click="getListData"
+      >搜索</el-button
+      >
+     </el-form>
+    <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
 
     <el-table
       :data="tableData"
@@ -61,6 +55,7 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
@@ -148,9 +143,20 @@ export default {
         class: "",
       },
       loading: false,
+      multipleSelection: [],
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.class_id)
+      })
+    },
+    changeGrade() {
+      this.getListData();
+      this.classListData();
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
@@ -191,6 +197,7 @@ export default {
     classListData() {
       let data = {
         page: 1,
+        grade_id: this.firstForm.grade,
         limit: 9999,
       };
       class_search(data).then((res) => {
@@ -208,7 +215,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_fxxt_xsfx_bj/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token +'&class_id='+ this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     detailData(id) {

+ 17 - 16
src/views/fxxt/xsfxgl/bjlb/xslbxq/index.vue

@@ -18,27 +18,20 @@
         ></el-input
       ></el-form-item>
       <el-form-item class="mr10" prop="xdfxx_fxzt" label="放学状态">
-        <el-select v-model="xdfxx_fxzt">
+        <el-select v-model="xdfxx_fxzt" clearable @change="getListData">
           <el-option
             v-for="item in ztList"
             :key="item.value"
             :label="item.label"
             :value="item.value"
-            clearable
-            @clear="getListData"
+
           ></el-option>
         </el-select>
       </el-form-item>
-      <div class="mb20">
-        <el-button type="primary" class="ml5" @click="getListData"
-          >搜索</el-button
-        >
-        <el-button type="primary" class="ml5" @click="clearData"
-          >清空</el-button
-        >
-      </div></el-form
-    >
-    <el-button type="primary" @click="exportAll">导出</el-button>
+      <el-button type="primary" class="ml5" @click="getListData"
+      >搜索</el-button>
+     </el-form>
+    <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
 
     <el-table
       :data="tableData"
@@ -46,13 +39,14 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
 
-      <el-table-column label="班级" prop="class_name" width="100">
+      <el-table-column label="班级" prop="class_name" width="200">
       </el-table-column>
-      <el-table-column label="放学日期" prop="xdfxx_fxrq" width="100">
+      <el-table-column label="放学日期" prop="xdfxx_fxrq" width="150">
         <template slot-scope="scope">
           <span>{{ scope.row.xdfxx_fxrq.substr(0, 10) }}</span>
         </template>
@@ -65,7 +59,7 @@
       </el-table-column>
       <el-table-column label="年龄" prop="xdfxx_xsnl" width="100">
       </el-table-column>
-      <el-table-column label="放学状态" prop="xdfxx_fxzt" width="150">
+      <el-table-column label="放学状态" prop="xdfxx_fxzt">
         <template slot-scope="scope">
           <span v-if="scope.row.xdfxx_fxzt_option_k == 1">已放学</span>
           <span v-if="scope.row.xdfxx_fxzt_option_k == 2" style="color: #26d48a"
@@ -129,9 +123,16 @@ export default {
       ],
       tableData: [],
       loading: false,
+      multipleSelection:[]
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      for (let i in val) {
+        this.multipleSelection.push(val[i].xdxx_xsxh);
+      }
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();

+ 9 - 3
src/views/fxxt/xsfxgl/index.vue

@@ -12,7 +12,6 @@
             v-for="item in gradeList"
             :label="item.grade_name"
             :value="item.grade_id"
-            :key="item.grade_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -34,7 +33,7 @@
       >
       <el-button type="primary" class="ml5" @click="clearData">清空</el-button>
     </el-form>
-    <el-button type="primary" @click="exportAll">导出</el-button>
+    <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
 
     <el-table
       :data="tableData"
@@ -42,6 +41,7 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
@@ -130,6 +130,12 @@ export default {
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.grade_id)
+      })
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
@@ -171,7 +177,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_fxxt_xsfx_nj/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token+'&grade_id='+ this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     detailData(id) {

+ 18 - 11
src/views/fxxt/zlsgl/index.vue

@@ -6,13 +6,12 @@
           v-model="firstForm.grade"
           placeholder="请选择年级"
           clearable
-          @change="getListData"
+          @change="changeGrade"
         >
           <el-option
             v-for="item in gradeList"
             :label="item.grade_name"
             :value="item.grade_id"
-            :key="item.grade_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -27,7 +26,6 @@
             v-for="item in classList"
             :label="item.class_name"
             :value="item.class_id"
-            :key="item.class_id"
           ></el-option>
         </el-select>
       </el-form-item>
@@ -60,15 +58,12 @@
         </el-date-picker>
       </el-form-item>
       <div class="mb20">
-        <el-button type="primary" class="ml5" @click="getListData"
+        <el-button type="primary" @click="getListData"
           >搜索</el-button
         >
-        <el-button type="primary" class="ml5" @click="clearData"
-          >清空</el-button
-        >
       </div></el-form
     >
-    <el-button type="primary" @click="exportAll">导出</el-button>
+    <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
 
     <el-table
       :data="tableData"
@@ -76,10 +71,10 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
-
       <el-table-column label="班级" prop="class_name" width="100">
       </el-table-column>
       <el-table-column label="放学日期" prop="xdfxx_fxrq" width="120">
@@ -95,7 +90,7 @@
       </el-table-column>
       <el-table-column label="年龄" prop="xdfxx_xsnl" width="100">
       </el-table-column>
-      <el-table-column label="放学状态" prop="xdfxx_fxzt" width="150">
+      <el-table-column label="放学状态" prop="xdfxx_fxzt">
         <template slot-scope="scope">
           <span style="color: #26d48a">{{ scope.row.xdfxx_fxzt }}</span>
         </template>
@@ -150,9 +145,20 @@ export default {
         class: "",
       },
       loading: false,
+      multipleSelection:[]
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.xdfxx_xsxh)
+      })
+    },
+    changeGrade() {
+      this.getListData();
+      this.classListData();
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
@@ -199,6 +205,7 @@ export default {
     classListData() {
       let data = {
         page: 1,
+        grade_id:this.firstForm.grade,
         limit: 9999,
       };
       class_search(data).then((res) => {
@@ -216,7 +223,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_fxxt_xsfx_xs/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token+'&xdfxx_fxzt=2&xdfxx_xsxh='+this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     // detailData() {

+ 1 - 1
src/views/xsczda/hzlxgl/index.vue

@@ -12,7 +12,7 @@
         <el-button type="primary">导入</el-button>
       </el-upload>
       <el-button type="primary" @click="exportAll">导入模板下载</el-button>
-      <el-button type="primary" @click="exportAll">导出</el-button>
+      <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
       <el-button type="primary" @click="addData">添加</el-button>
       <el-button
         type="danger"

+ 0 - 1
src/views/xsczda/xslb/bjlb/api.js

@@ -20,7 +20,6 @@ export const bj_add = (data = {}) =>
             xddy_dygl_xsczda_bj: {
                 class_name: data.class_name,
                 grade_name: data.grade_name,
-                class_name: data.class_name,
                 class_id: data.class_id,
                 grade_id: data.grade_id,
                 xdxb_zrs: data.xdxb_zrs,

+ 17 - 4
src/views/xsczda/xslb/bjlb/index.vue

@@ -6,7 +6,7 @@
           v-model="firstForm.grade"
           placeholder="请选择年级"
           clearable
-          @clear="getListData"
+          @change="changeGrade"
         >
           <el-option
             v-for="item in gradeList"
@@ -20,7 +20,7 @@
           v-model="firstForm.class"
           placeholder="请选择班级"
           clearable
-          @clear="getListData"
+          @change="getListData"
         >
           <el-option
             v-for="item in classList"
@@ -50,7 +50,7 @@
       <el-button type="primary" class="ml5" @click="clearData">清空</el-button>
     </el-form>
     <div>
-      <el-button type="primary" @click="exportAll">导出</el-button>
+      <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
     </div>
     <el-table
       :data="tableData"
@@ -58,6 +58,7 @@
       v-loading="loading"
       class="mt20"
       style="width: 100%"
+      @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" align="center" width="55">
       </el-table-column>
@@ -116,9 +117,16 @@ export default {
         class: "",
       },
       loading: false,
+      multipleSelection: [],
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.class_id)
+      })
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
@@ -159,6 +167,7 @@ export default {
     classListData() {
       let data = {
         page: 1,
+        grade_id: this.firstForm.grade,
         limit: 9999,
       };
       class_search(data).then((res) => {
@@ -177,7 +186,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_xsczda_bj/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token+'&class_id='+ this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     detailData(id) {
@@ -190,6 +199,10 @@ export default {
       this.firstForm.grade = "";
       this.firstForm.class = "";
     },
+    changeGrade() {
+      this.getListData();
+      this.classListData();
+    }
   },
   mounted() {
     if (this.$route.params.id != "") {

+ 7 - 5
src/views/xsczda/xslb/bjlb/xslbxq/index.vue

@@ -26,7 +26,7 @@
         <el-button type="primary">导入</el-button>
       </el-upload>
       <el-button type="primary" @click="exportAll">导入模板下载</el-button>
-      <el-button type="primary" @click="exportAll">导出</el-button>
+      <el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button>
       <el-button type="primary" @click="addData">添加</el-button>
       <el-button type="danger" @click="delData" :disabled="multipleSelection.length == 0">删除</el-button>
     </div>
@@ -178,6 +178,7 @@ export default {
       commentDialogVisible: false,
       loading: false,
       multipleSelection: [],
+      delSelection:[],
       // 导入导出
       import_type_url:
         window.globalVariables.api +
@@ -326,7 +327,7 @@ export default {
       })
         .then(() => {
           let data = {
-            xdxx_id: this.multipleSelection,
+            xdxx_id: this.delSelection.join(','),
           };
 
           xs_del(data).then((res) => {
@@ -349,8 +350,10 @@ export default {
 
     handleSelectionChange(val) {
       this.multipleSelection = [];
+      this.delSelection = [];
       for (let i in val) {
-        this.multipleSelection.push(val[i].xdxx_id);
+        this.multipleSelection.push(val[i].xdxx_xsxh);
+        this.delSelection.push(val[i].xdxx_id);
       }
     },
 
@@ -430,7 +433,7 @@ export default {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_xsczda_xs/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token + '&xdxx_xsxh='+ this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     gradeListData() {
@@ -446,7 +449,6 @@ export default {
             grade_name: "全部",
           };
           this.gradeList.unshift(obj);
-          console.log(this.gradeList, 3);
         }
       });
     },

+ 12 - 35
src/views/xsczda/xslb/index.vue

@@ -6,7 +6,7 @@
           v-model="firstForm.grade"
           placeholder="请选择年级"
           clearable
-          @clear="getListData"
+          @change="getListData"
         >
           <el-option
             v-for="item in gradeList"
@@ -15,20 +15,6 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="班级:">
-        <el-select
-          v-model="firstForm.class"
-          placeholder="请选择班级"
-          clearable
-          @clear="getListData"
-        >
-          <el-option
-            v-for="item in classList"
-            :label="item.class_name"
-            :value="item.class_id"
-          ></el-option>
-        </el-select>
-      </el-form-item>
       <el-form-item class="mr10" prop="" label="学生姓名:">
         <el-input
           placeholder="输入学生姓名"
@@ -49,11 +35,12 @@
       >
       <el-button type="primary" class="ml5" @click="clearData">清空</el-button>
     </el-form>
-    <div><el-button type="primary" @click="exportAll">导出</el-button></div>
+    <div><el-button type="primary" @click="exportAll" :disabled="tableData.length == 0">导出</el-button></div>
     <el-table
       :data="tableData"
       tooltip-effect="dark"
       v-loading="loading"
+      @selection-change="handleSelectionChange"
       style="width: 100%"
     >
       <el-table-column type="selection" align="center" width="55">
@@ -64,7 +51,7 @@
       <el-table-column label="总人数" prop="xdxn_zrs" width="250">
       </el-table-column>
 
-      <el-table-column label="操作" width="250">
+      <el-table-column label="操作">
         <template slot-scope="scope">
           <el-button type="text" @click="detailData(scope.row.xdxn_id)"
             >查看
@@ -110,9 +97,16 @@ export default {
         class: "",
       },
       loading: false,
+      multipleSelection: [],
     };
   },
   methods: {
+    handleSelectionChange(val) {
+      this.multipleSelection = [];
+      val.forEach(item => {
+        this.multipleSelection.push(item.grade_id)
+      })
+    },
     handleCurrentChange(val) {
       this.cur_page = val;
       this.getListData();
@@ -150,28 +144,12 @@ export default {
         }
       });
     },
-    classListData() {
-      let data = {
-        page: 1,
-        limit: 9999,
-      };
-      class_search(data).then((res) => {
-        if (res.code == 1) {
-          this.classList = res.data.page_data;
-          let obj = {
-            class_id: "",
-            class_name: "全部",
-          };
-          this.classList.unshift(obj);
-        }
-      });
-    },
 
     exportAll() {
       let link =
         window.globalVariables.api +
         "/xddy/dygl_xsczda_nj/index?api=xls&page=1&limit=10000&token=" +
-        token;
+        token + '&grade_id='+ this.multipleSelection.join(',');
       window.open(link, "_blank");
     },
     detailData(id) {
@@ -185,7 +163,6 @@ export default {
   mounted() {
     this.getListData();
     this.gradeListData();
-    this.classListData();
   },
 };
 </script>

+ 26 - 25
vite.config.js

@@ -1,30 +1,31 @@
-import { defineConfig } from 'vite'
-import { createVuePlugin } from 'vite-plugin-vue2'
-import { resolve } from 'path'
+import {defineConfig} from 'vite'
+import {createVuePlugin} from 'vite-plugin-vue2'
+import {resolve} from 'path'
 
 // https://vitejs.dev/config/
-export default defineConfig(({ command }) => {
-  const config = {
-    plugins: [
-      createVuePlugin({
-        jsx: true,
-      }),
-    ],
-    resolve: {
-      alias: {
-        '@': resolve(__dirname, 'src'),
-        '@c': resolve(__dirname, 'src/components'),
-      },
-    },
-    css:{
-
+export default defineConfig(({command}) => {
+    const config = {
+        plugins: [
+            createVuePlugin({
+                jsx: true,
+            }),
+        ],
+        server: {
+            port: 3001,
+        },
+        resolve: {
+            alias: {
+                '@': resolve(__dirname, 'src'),
+                '@c': resolve(__dirname, 'src/components'),
+            },
+        },
+        css: {}
+    }
+    if (command === 'build') {
+        config.base = ''
+    } else {
+        config.base = '/'
     }
-  }
-  if (command === 'build') {
-    config.base = ''
-  }else{
-    config.base = '/'
-  }
 
-  return config
+    return config
 })

+ 8 - 3
yarn.lock

@@ -672,9 +672,9 @@
     "resize-observer-polyfill" "^1.5.0"
     "throttle-debounce" "^1.0.1"
 
-"esbuild-windows-64@0.14.26":
-  "integrity" "sha512-Q0Bm42+wIqHJ8yF96T7nXosILXROegRtMmuI1L0kry0YBHnCFMtjNRTyUwv8yi7o2XvVYh7DF0NHLDL4N34MuA=="
-  "resolved" "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.26.tgz"
+"esbuild-darwin-64@0.14.26":
+  "integrity" "sha512-oZJBN+CkR47Fc7KB1vowZy2kb5r+WSnsBjVEw7aI8HmR6louAgTr4bs1NwzaF6MbLi41ajaw6RdipfsM1H9PvQ=="
+  "resolved" "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.26.tgz"
   "version" "0.14.26"
 
 "esbuild@^0.14.14":
@@ -745,6 +745,11 @@
   "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
   "version" "1.0.0"
 
+"fsevents@~2.3.2":
+  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
+  "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
+  "version" "2.3.2"
+
 "function-bind@^1.1.1":
   "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
   "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"