当前位置:首页 > 政务公开 > 法律法规 > 地方性法规

福建省动物防疫条例

(2022年7月28日福建省第十三届人民代表大会常务委员会第三十四次会议通过)

2022-08-10 09:01
| | | |

福建省人民代表大会常务委员会公告

〔十三届〕第八十二号

  《福建省动物防疫条例》已由福建省第十三届人民代表大会常务委员会第三十四次会议于2022年7月28日通过,现予公布。本条例自2022年10月1日起施行。

福建省人民代表大会常务委员会

2022年7月28日

  目 录

  第一章 总则

  第二章 动物疫病的预防与控制

  第三章 动物和动物产品的检疫

  第四章 病死动物和病害动物产品的无害化处理

  第五章 动物诊疗

  第六章 法律责任

  第七章 附则


第一章 总 则

  第一条 为了加强对动物防疫活动的管理,预防、控制、净化、消灭动物疫病,促进养殖业发展,防控人畜共患传染病,保障公共卫生安全和人体健康,根据《中华人民共和国动物防疫法》等有关法律、行政法规,结合本省实际,制定本条例。

  第二条 本条例适用于本省行政区域内的动物防疫及其监督管理活动。

  第三条 动物防疫实行预防为主,预防与控制、净化、消灭相结合的方针。

  第四条 县级以上地方人民政府统一领导动物防疫工作,将动物防疫纳入国民经济和社会发展规划以及年度计划,建立健全动物防疫体系,加强动物防疫基础设施和机构队伍建设,动物防疫所需经费纳入本级财政预算。

  乡(镇)人民政府、街道办事处应当落实动物防疫责任,组织群众做好本辖区的动物疫病预防与控制工作,村(居)民委员会予以协助。

  第五条 县级以上地方人民政府农业农村和渔业主管部门(以下统称动物防疫主管部门)按照各自职责负责本行政区域内的动物防疫工作。

  县级以上地方人民政府发展改革、公安、财政、卫生健康、交通运输、林业、城市管理、商务、市场监督管理等主管部门以及海关在各自职责范围内做好动物防疫工作。

  第六条 县级以上地方人民政府应当制定并组织实施动物疫病防治规划,将人畜共患传染病防治纳入公共卫生体系,同步规划、同步建设、同步实施。

  县级以上地方人民政府卫生健康、农业农村、野生动物保护等主管部门以及海关应当建立动物防疫协作机制,加强人畜共患传染病防控,以及野生动物疫源疫病监测和外来动物疫病防范等方面合作和信息共享。

  县级以上地方人民政府卫生健康主管部门应当加强对动物和动物产品生产经营等活动从业人员的健康监测,预防人畜共患传染病的传播。

  第七条 鼓励保险机构开发动物疫病保险产品。

  县级以上地方人民政府可以通过财政补贴等方式,支持饲养动物的单位和个人参加动物疫病保险。

  第八条 县级以上地方人民政府动物防疫主管部门、乡(镇)人民政府、街道办事处可以通过政府购买服务方式,开展动物防疫工作。

  鼓励兽医社会化服务组织发展,支持兽医社会化服务组织通过承接政府购买服务等方式参与提供动物防疫公益性服务。

  第九条 省人民政府动物防疫主管部门应当建立健全动物防疫数字化系统,完善动物检疫、病死畜禽无害化处理等数字化平台建设,实现畜禽从养殖到屠宰全流程监管。

  县级以上地方人民政府及其有关部门应当鼓励和支持开展动物疫病科学研究与交流合作,加强科技人才培养,推广科学研究成果,应用信息化手段开展动物防疫工作,在养殖、防疫、检疫、屠宰、流通、无害化处理等方面实现信息共享,建立可追溯体系,提高动物疫病防治的科学技术水平。

 

第二章 动物疫病的预防与控制

  第十条 省人民政府动物防疫主管部门应当制定全省动物疫病强制免疫计划。

  设区的市、县(市、区)人民政府动物防疫主管部门,应当根据省人民政府动物防疫主管部门制定的动物疫病强制免疫计划,制定本行政区域强制免疫实施方案,并组织实施。

  第十一条 县级以上地方人民政府动物防疫主管部门应当依法加强对国家强制免疫用生物制品的生产、经营、采购、储存、分发和使用的管理。

  养殖场(户)、动物诊疗机构等使用者采购的或者经政府分发获得的国家强制免疫用生物制品只限自用,不得转手销售。

  第十二条 县级以上地方人民政府动物防疫主管部门应当建立健全动物疫病强制免疫评估制度。

  免疫密度和免疫质量未达到本省规定要求的,设区的市、县(市、区)人民政府动物防疫主管部门和乡(镇)人民政府、街道办事处应当按照职责采取相应的整改措施,饲养动物的单位和个人应当按照规定落实防疫主体责任。

  第十三条 省人民政府制定并组织实施全省无规定动物疫病区建设方案,确定建设范围和实施区域化管理的病种。设区的市、县(市、区)人民政府应当根据全省无规定动物疫病区建设方案,制定本行政区域的无规定动物疫病区建设方案并组织实施。

  县级以上地方人民政府应当支持动物饲养场建设无规定动物疫病生物安全隔离区。

  第十四条 县级以上地方人民政府应当引导规模化养殖,制定并组织实施本行政区域的动物疫病净化、消灭计划,支持饲养动物的单位和个人开展动物疫病净化,按照本省有关规定对重点动物疫病净化费用给予补助。

  种用、乳用动物养殖场应当建立动物疫病净化制度,按照有关规定要求开展重点动物疫病净化工作。

  第十五条 种用、乳用动物禁止实施布鲁氏菌病免疫。动物实施布鲁氏菌病免疫的,不得作为种畜使用,所产生鲜乳不得作为液态奶生产原料。

  第十六条 活禽交易场所(交易点)应当建立健全清洗、消毒、休市制度,按照国家有关活禽交易市场管理规定对交易场所(交易点)进行每日清洗、每周消毒,并根据疫情防控需要进行休市。

  活畜交易场所(交易点)依照执行。

  第十七条 重大动物疫情发生后,所在地县级以上地方人民政府应当启动应急预案,采取封锁、隔离、扑杀、销毁、消毒、无害化处理、紧急免疫接种等应急处理措施,迅速扑灭疫情,并做好肉食品供应、动物和动物产品市场监管、社会治安维护等工作。

  乡(镇)人民政府、街道办事处应当根据重大动物疫情应急处置要求,落实无害化处理场地,协助做好疫情信息的收集、报告和各项应急处置工作。

  第十八条 疫点、疫区和受威胁区内有关单位和个人,应当遵守县级以上地方人民政府及其动物防疫主管部门依法作出的有关控制动物疫病的规定。

  第十九条 对在动物疫病预防、控制、净化、消灭过程中强制扑杀的动物、销毁的动物产品和相关物品,县级以上地方人民政府应当依法给予补偿。

  第二十条 设区的市应当制定散养畜禽管理制度,建立散养畜禽数字化登记管理系统,做好本辖区散养畜禽防疫管理工作。

  第二十一条 县(市、区)人民政府动物防疫主管部门应当合理设置并公布动物狂犬病免疫点,加强监督管理。

  饲养犬只的单位和个人不得随意弃养。携带犬只出户的,应当及时清除犬只排泄的粪便,防止疫病传播。

  设区的市应当根据当地实际情况制定犬只管理办法,确定登记、管理部门,建立数字化登记管理系统,做好本辖区犬只防疫管理工作。

 

第三章 动物和动物产品的检疫

  第二十二条 承担动物卫生监督职责的机构可以根据动物检疫工作需要,聘用兽医专业人员协助官方兽医实施动物和动物产品检疫技术工作,所需经费由同级财政承担。

  第二十三条 从事动物和动物产品经营的单位、个人或者承运人应当按照动物检疫合格证明填写的目的地运输,中途不得销售、更换动物和动物产品。

  第二十四条 从省外调入畜禽和畜禽产品的单位、个人以及车辆应当至少提前一个工作日,通过省动物检疫合格证明电子出证平台或者省动物防疫主管部门确定的其他方式进行登记。

  在重大动物疫病防控应急期间,饲养、经营动物的单位和个人跨县(市、区)调入与该类动物疫病传播相关动物和动物产品的,应当至少提前一个工作日,通过省动物检疫合格证明电子出证平台或者省动物防疫主管部门确定的其他方式进行登记。

  从省外调入畜禽或者在重大动物疫病防控应急期间跨县(市、区)调入与该类动物疫病传播相关动物用于饲养的,应当在到达目的地后二十四小时内,通过省动物检疫合格证明电子出证平台或者省动物防疫主管部门确定的其他方式,向调入地县(市、区)承担动物卫生监督职责的机构报告。

  第二十五条 通过道路运输进入本省的动物和动物产品,应当经省人民政府设立的指定通道进入,并主动接受指定通道检查站的监督检查。

  县级人民政府应当为指定通道检查站配备与工作需要相适应的监督执法人员,提供必要的工作条件和工作经费。

  第二十六条 从事动物经营的单位和个人,应当建立包括动物产地、饲养者、检疫证明编号、购销日期和数量等事项的档案,确保动物信息可追溯。

  从事动物运输的单位和个人,应当遵守指定通道制度,妥善保存行程路线和托运人提供的动物名称、检疫证明编号、数量等信息,并按照有关规定向所在地县级人民政府动物防疫主管部门备案。

  第二十七条 为控制动物疫病,县级人民政府动物防疫主管部门在依法设立的现有检查站或者高速收费站执行监督检查任务,公安、交通运输等部门应当提供便利条件。必要时,经省人民政府批准,可以设立临时性的动物防疫检查站,执行监督检查任务。

  临时性动物防疫检查站执行监督检查任务的具体时间,由省人民政府动物防疫主管部门根据动物疫情实际情况确定。

  第二十八条 屠宰厂(场、点)应当遵守以下规定:

  (一)建立动物进厂(场、点)检查登记制度,经查证验物合格的,方可进厂(场、点),进厂(场、点)动物按照种类、产地等分类送入待宰圈,不同货主、不同批次的动物不得混群;

  (二)提供动物检疫申报点专用场所,配置与屠宰规模相适应的官方兽医检疫室和检疫操作台等设施设备;

  (三)回收畜禽标识并交承担动物卫生监督职责的机构处置;

  (四)每日对屠宰车间和待宰栏进行清洗、消毒;

  (五)对检疫不合格的动物和动物产品按照规定进行处理;

  (六)禁止将厂(场、点)内待宰的动物外运出厂(场、点);

  (七)建立动物进入、动物产品运出、死亡动物和病害动物产品无害化处理以及消毒等记录台账;

  (八)法律、法规规定的其他事项。

 

第四章 病死动物和病害动物产品的无害化处理

  第二十九条 下列动物和动物产品应当按照国家规定进行处理,任何单位和个人不得随意处置:

  (一)动物饲养、屠宰、经营、隔离以及运输活动中染疫、病死或者死因不明的动物;

  (二)动物产品生产、经营、加工、贮藏以及运输活动中的染疫、病害动物产品;

  (三)动物诊疗、教学科研活动中死亡的动物和产生的病理组织;

  (四)其他可能造成动物疫病传播的动物和动物产品。

  第三十条 动物饲养场、动物隔离场所、动物屠宰加工场所以及动物诊疗、教学科研机构,自行无害化处理病死、死因不明动物和病害动物产品的,应当及时、如实做好处理记录并保存,保存期限不少于两年。

  动物和动物产品集中无害化处理场所应当将动物尸体、病害动物产品的来源、数量以及无害化处理方式和无害化处理后产品的处置情况,及时、如实、详细记录并保存,保存期限不少于两年。

  第三十一条 在无害化处理前,能够按照国家病死以及病害动物处理技术规范,确保相关动物和动物产品不外运、动物疫病不传播扩散的,可以将不同批次动物和动物产品集中进行无害化处理。

  第三十二条 设区的市、县(市、区)人民政府应当统筹规划建设动物和动物产品无害化处理公共设施,合理布局收集转运点,建立健全无害化处理体系。

  集中无害化处理场所应当按照国家规定,配备符合动物防疫要求的专用运输车辆。

  鼓励和支持社会资本投资建设集中无害化处理场所。

  第三十三条 单位和个人非法生产经营病死、死因不明或者染疫动物和动物产品的,多次或者大量弃置动物尸体的,县级以上地方人民政府及其有关部门应当向社会公布。

 

第五章 动物诊疗

  第三十四条 从事动物诊疗活动的机构,应当依法取得所在地县级以上地方人民政府动物防疫主管部门核发的动物诊疗许可证,并在规定的诊疗活动范围内开展动物诊疗活动。

  动物诊疗许可证不得伪造、变造、转让、出租和出借。

  第三十五条 动物诊疗机构兼营宠物用品、宠物食品以及宠物美容等与诊疗无关的项目,兼营区域与动物诊疗区域,应当经过物理分隔,分别独立设置。

  第三十六条 依法取得执业兽医资格证书并从事动物诊疗等经营活动的,应当向所在地县级人民政府动物防疫主管部门备案。

  执业兽医开具兽医处方应当经本人诊断,并对诊断结论负责。执业助理兽医师在执业兽医师指导下协助开展兽医执业活动,但不得开具处方、填写诊断书和出具有关证明文件。

  乡村兽医应当具备国家规定的条件,并向所在地县级人民政府兽医主管部门备案。

  第三十七条 动物诊疗机构从业人员从事动物诊疗活动时,应当佩戴载有本人姓名、照片、执业地点和执业等级等内容的标牌。

  第三十八条 从事动物诊疗活动,应当遵守有关动物诊疗的操作技术规范。不得有下列行为:

  (一)聘用未取得执业兽医资格证书或者未办理备案的人员从事动物诊疗活动;

  (二)随意抛弃动物的尸体、器官组织或者诊疗废弃物;

  (三)排放未经无害化处理或者处理不达标的诊疗废水;

  (四)使用假、劣兽药和国家禁用的药品以及其他化合物;

  (五)使用假、劣兽医医疗器械;

  (六)销售或者违反国家规定使用精神药品、麻醉药品和兽用生物制品;

  (七)未做诊疗记录;

  (八)在动物诊疗场所从事动物交易、寄养活动;

  (九)法律、法规禁止的其他行为。

 

第六章 法律责任

  第三十九条 违反本条例规定,法律、行政法规已有法律责任规定的,从其规定。

  第四十条 国家机关及其工作人员违反本条例规定,造成人畜共患传染病传播、流行的,由县级以上地方人民政府及其有关部门对责任单位责令改正、通报批评、给予警告;对直接负责的主管人员和其他直接责任人员,依法从重给予处分;构成犯罪的,依法追究刑事责任。

  第四十一条 违反本条例第十一条规定,养殖场(户)、动物诊疗机构等使用者转手销售国家强制免疫用生物制品的,按照无证经营处理。

  第四十二条 违反本条例第十四条规定,种用、乳用动物养殖场未按照要求开展重点动物疫病净化工作的,由县级以上地方人民政府动物防疫主管部门责令改正,处六千元以上三万元以下罚款;情节严重的,责令停业整顿,并处三万元以上十万元以下罚款;构成犯罪的,依法追究刑事责任。

  第四十三条 违反本条例第十六条规定,活畜禽交易场所(交易点)未执行清洗、消毒、休市制度的,由县级以上地方人民政府动物防疫主管部门责令限期改正,逾期未改正的,处二千元以上一万元以下罚款;情节严重的,责令停业整顿,并处一万元以上五万元以下罚款。

  第四十四条 违反本条例第二十一条规定,单位和个人随意弃养犬只,造成动物疫病传播的,由县级以上地方人民政府动物防疫主管部门处二千元以上一万元以下罚款;未及时清除犬只排泄的粪便的,由县级以上地方人民政府市容环境卫生行政主管部门或者其委托的单位责令改正,拒不改正的,处一百元以上五百元以下罚款。

  第四十五条 违反本条例第二十三条规定,不按照动物检疫合格证明填写的目的地运输,或者中途销售、更换的,由县级以上地方人民政府动物防疫主管部门责令改正,处六千元以上三万元以下罚款;情节严重的,责令停业整顿,并处三万元以上十万元以下罚款。

  第四十六条 违反本条例第二十四条规定,跨省调入畜禽和畜禽产品未在规定时间内进行登记,或者调入畜禽用于饲养未向调入地承担动物卫生监督职责的机构报告的,由县级以上地方人民政府动物防疫主管部门给予警告,处五千元以上一万元以下罚款;情节严重的,处一万元以上五万元以下罚款。

  违反本条例第二十四条规定,在重大动物疫病防控应急期间,跨县(市、区)调入相关动物和动物产品未在规定时间内进行登记,或者调入相关动物用于饲养未向调入地承担动物卫生监督职责的机构报告的,由县级以上地方人民政府动物防疫主管部门对调入的动物和动物产品进行隔离、封存和处理,无隔离、封存条件的,进行无害化处理,可以处六千元以上三万元以下罚款;情节严重的,处三万元以上十万元以下罚款。

  第四十七条 违反本条例第二十八条规定,未提供动物检疫申报点专用场所,或者未配置与屠宰规模相适应的设施设备的,由县级以上地方人民政府动物防疫主管部门责令改正;拒不改正或者整改后仍不合格的,责令停业整顿。

  违反本条例第二十八条规定,未回收畜禽标识并交承担动物卫生监督职责的机构处置的,由县级以上地方人民政府动物防疫主管部门责令改正,可以处五百元以上二千元以下罚款。

  违反本条例第二十八条规定,未每日对屠宰车间和待宰栏进行清洗、消毒的,由县级以上地方人民政府动物防疫主管部门责令限期改正,逾期不改正的,处一千元以上五千元以下罚款。

  违反本条例第二十八条规定,将厂(场、点)内待宰的动物外运出厂(场、点)的,由县级以上地方人民政府动物防疫主管部门责令改正,处二千元以上一万元以下罚款;情节严重的,处一万元以上三万元以下罚款。

  第四十八条 违反本条例第三十五条规定,兼营区域与动物诊疗区域未经过物理隔离、分别独立设置的,由县级以上地方人民政府动物防疫主管部门责令改正,给予警告;拒不改正或者整改后仍不合格的,处二千元以上一万元以下罚款。

  第四十九条 违反本条例第三十七条规定,动物诊疗机构从业人员从事动物诊疗活动时,未按照规定佩戴标牌的,由县级以上地方人民政府动物防疫主管部门责令改正,给予警告;拒不改正的,处二百元以上一千元以下罚款。

  第五十条 动物诊疗机构违反本条例第三十八条规定,聘用未取得执业兽医资格证书的人员从事动物诊疗活动,或者在动物诊疗场所从事动物交易、寄养活动的,由县级以上地方人民政府动物防疫主管部门责令改正,给予警告,处一万元以上五万元以下罚款;拒不改正的,处五万元以上十万元以下罚款。

  动物诊疗机构从业人员违反本条例第三十八条规定,未做诊疗记录的,由县级以上地方人民政府动物防疫主管部门给予警告,责令改正;拒不改正的,责令暂停六个月以上一年以下动物诊疗活动。

 

第七章 附 则

  第五十一条 本条例自2022年10月1日起施行。

附件:

政府文件全真版:

温馨提示: 请使用OFD阅读软件浏览源文件,如未安装点击下载

来源:福建日报

扫码关注中国福建微信

扫码关注中国福建微信

扫一扫在手机上查看当前页面

”进行咨询,后续会有业务部门人员进行回复哦。"; //模拟sessionid var rondom = ""; //默认300秒超时 var outTime = 300; //定时器计数 var count = 140; //用户无响应时间定时器 用于超期退出 var ref; //热点问题显示个数 var rows = 18; var status = 200; var siteUrl = ""; var index = -1; var size = ""; var rec; var voiceRefMap = new Map(); var secs = 20; //倒计时 var param; var num = 0; var switch2Text = false; var timeliness = 0;//响应及时性 var accuracy = 0;//答案准确性 var experience = 0;//互动体验性 var knowledgeNum = 0;//业务知识量 var suggest = "";//意见 var userLastInput = ""; var isRstSearch = false; var evaluateShow = true;//是否显示评价 // var listener = new window.keypress.Listener(); var queTemplate = Handlebars.compile($("#que_template").html()); var li = 0 var keyStatus = 0 //点击按键状态 1代表上键 2代表下键 var userOldInput = ""; //语音 $('#start_record').on('click', function () { startRec(); ifs="0"; $("#answerList").html(" ") if(window.bf && window.bf._voice) { if(window.bf._voice.closeState == 0) { window.bf._voice.closeState = 1; window.bf.getState('voiceClose', 1) } } }) //语音 $('#stop_record').on('click', function () { ifs=""; uploadRec(); $(".h-start1").hide() if(window.bf && window.bf._voice) { if(window.bf._voice.closeState == 1) { window.bf._voice.closeState = 0; window.bf.getState('voiceClose', 0) } } }) function onmouseover_(obj, e) { if (e == 1) { $(obj).css('color', 'blue'); $(obj.childNodes[0]).attr('src', 'img/ishelp1.png'); } else { $(obj).css('color', 'black'); $(obj.childNodes[0]).attr('src', 'img/ishelp3.png'); } } function onmouseout_(obj, e) { if (e == 1) { $(obj).css('color', '#999'); $(obj.childNodes[0]).attr('src', 'img/ishelp.png'); } else { $(obj).css('color', '#999'); $(obj.childNodes[0]).attr('src', 'img/ishelp2.png'); } } function timecount() { $('#lisening').html("(点击结束 " + secs + " 秒)"); secs = secs - 1; if (secs < 0) { uploadRec(); clearTimeout(param); } param = setTimeout(function () { timecount(); }, 1000); } var btnStartRecording = document.getElementById('start_record'); var btnStopRecording = document.getElementById('stop_record'); var isEdge = navigator.userAgent.indexOf('Edge') !== -1 && (!!navigator.msSaveOrOpenBlob || !!navigator.msSaveBlob); var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); var recorder; // globally accessible var microphone; // 语音调用的方法 function startRec() { $("#voice-label").html("(录音功能正在准备中)") // initVoice(); $("audio").each(function (index, item) { $(this)[0].pause(); }); $('.yy_btn_close').each(function (index, item) { $(this).removeClass().addClass("yy_btn"); }); clearTimeout(param); secs = 20; timecount(); if (!microphone) { captureMicrophone(function (mic) { //捕获传声器captureMicrophone microphone = mic; click(btnStartRecording); }); return; } var options = { type: 'audio', numberOfAudioChannels: 1, checkForInactiveTracks: false, bufferSize: 4096, recorderType: StereoAudioRecorder }; if (recorder) { recorder.destroy(); recorder = null; } $('.h-start2').hide(); $('.h-close').show(); $("#voice-label").text("(点击开始说话)"); recorder = RecordRTC(microphone, options); recorder.startRecording(); }; //停止录音的回调 function stopRecordingCallback() { if (!switch2Text) { var internalRecorder = recorder.getInternalRecorder(); var leftchannel = internalRecorder.leftchannel; var rightchannel = internalRecorder.rightchannel; // ------------------------------------------------------------ mergeLeftRightBuffers({ desiredSampRate: 8000, sampleRate: internalRecorder.sampleRate, numberOfAudioChannels: internalRecorder.numberOfAudioChannels, internalInterleavedLength: internalRecorder.recordingLength, leftBuffers: leftchannel, rightBuffers: internalRecorder.numberOfAudioChannels === 1 ? [] : rightchannel }, function (buffer, view) { var wavBlob = new Blob([buffer], { type: 'audio/wav' }); var blob = changeFormat(buffer); clearTimeout(param); var form = new FormData(); var filleName = rondomNum(true, 32, 32); form.append("siteId", siteId); form.append("random", rondom); form.append("upfile", blob, filleName + ".mp3"); //和普通form表单并无二致,后端接收到upfile参数的文件,文件名为recorder.mp3 var audio = document.createElement("audio"); audio.id = filleName + "_"; audio.style.cssFloat = "right"; audio.style.height = "32px"; audio.controls = true; audio.style.display = "none"; audio.src=/zwgk/flfg/dfxfg/202208/URL.createObjectURL(wavBlob); $("#answerList").append(audio); var values = {value: filleName, isvoice: true}; appendHtml(queTemplate(values), 3); // audio.play(); isVoiceAsk = true; $.ajax({ type: 'POST', url: "/isr/public/talk/uploadMp3?siteId=2c9bc5436f844983016f84499f1b00ac", data: form, cache: false, processData: false, contentType: false, success: function (ret) { //console.log("resresres",ret); //console.log(importVoice,"2202"); var json = $.parseJSON(ret); $("#" + json.id).val(json.result); if (json.qastatus == 1) { qaResult(json.result); } } }); count = outTime; }); } else { switch2Text = false; } // if (isSafari) { // click(btnReleaseMicrophone); // } } function uploadRec() { $('.h-start2').show(); $('.h-close').hide(); recorder.stopRecording(stopRecordingCallback); }; function isSolve(e) { var status = e; $.ajax({ headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, type: "POST", url: isSolveSessionUrl, async: true, data: "{\"status\":\"" + status + "\",\"rondom\":\"" + rondom + "\"}", success: function (result) { }, }) } function captureMicrophone(callback) { // btnReleaseMicrophone.disabled = false; if (microphone) { callback(microphone); return; } if (typeof navigator.mediaDevices === 'undefined' || !navigator.mediaDevices.getUserMedia) { $('.h-start2').show(); $('.h-close').hide(); var sys = isAndroidOrIOSOrPc(); if (sys == "pc") { alert("该浏览器不支持语音录入,
请使用谷歌、火狐等主流浏览器。", {area: ['320px', '80px']}); } else if (sys == "ios") { alert("该浏览器不支持语音录入,
请将您的IOS操作系统升级最新版本,并使用safari浏览器打开使用。", {area: ['320px', '80px']}); } else if (sys == "android") { alert("该浏览器不支持语音录入,
请使用系统自带浏览器打开使用。", {area: ['320px', '80px']}); } else { alert("您当前的操作系统不支持语音录入。", {area: ['300px', '50px']}); } } navigator.mediaDevices.getUserMedia( { audio: isEdge ? true : {echoCancellation: false} } ).then(function (mic) { callback(mic); }).catch(function (error) { alert("该浏览器不支持语音录入。
或您拒绝了语音授权", {area: ['300px', '60px']}); $("#voice-label").html("(点击开始说话)"); $('.h-start2').show(); $('.h-close').hide(); }) } /** * randomWord 产生任意长度随机字母数字组合 * randomFlag-是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位 * @param randomFlag * @param min * @param max * @returns {string} */ function rondomNum(randomFlag, min, max) { var str = "", range = min, arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'U', 'V', 'W', 'X', 'Y', 'Z']; // 随机产生 if (randomFlag) { range = Math.round(Math.random() * (max - min)) + min; } for (var i = 0; i < range; i++) { pos = Math.round(Math.random() * (arr.length - 1)); str += arr[pos]; } return str; } function qaResult(keyWord) { $("#completionQues").html(""); $("#tc_Big_box").hide(); $("#keyLength").html(50); var url = answerUrl; if (isRstSearch) { url = rstAnswerUrl; } $.ajax({ headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, //请求方式 type: "POST", //请求地址 url: url, dataType: "json", //数据,json字符串 data: "{\"question\":\"" + keyWord + "\",\"siteId\":\"" + siteId + "\",\"rondom\":\"" + rondom + "\"}", //请求成功 success: function (data) { // console.log(data); if (!data.error) { if (data.msg) { appendHtml(data.msg, 1); return; } recordId = data.recordId; var isVoice = data.isVoice; //匹配答案 var match = data.result.matchQuestions; //相似问题 var like = data.result.likeQuestions; var fill = data.result.fillQuestions; //敏感词 var filter = data.result.filterList; var ischat = data.result.ischat; var rstdata = data.result.rstdata; parseData(match, like, filter, ischat, keyWord, rstdata, isVoice); } }, //请求失败,包含具体的错误信息 error: function (e) { if (e.responseText.indexOf('script') > 0) { var msg = e.responseText.substring(e.responseText.indexOf('\'') + 1, e.responseText.lastIndexOf('\'')); appendHtml(msg, 1) } } }); $("#keyWord").val(""); } /** * 后端返回值解析 * @param match * @param like * @param filter */ function parseData(match, like, filter, ischat, textValue, rstdata, isVoice) { voiceBtnId = genUuid(); isRstData = false; $("#tc_Big_box").hide(); if (rstdata && rstdata.list.length > 0) { var values = { robotName: robotName, img: robotImage, rstdata: rstdata, unknow: unknow, index: ++num, isWebSearch: isRstSearch, voiceBtnId: voiceBtnId }; appendHtml(rstTemplate(values), 8); var smartAnswer = rstDataAddIndex(rstdata.list); smartList = getSmartList(smartAnswer); isRstData = true; isRstSearch = false; playVoiceAsk(); return; } //敏感词 if (filter && filter.length > 0) { var words = ""; jQuery.each(filter, function (i, item) { var obj = JSON.parse(item); words += obj.word + ","; }); if (words.length > 0) words = words.substring(0, words.length - 1); var values = { robotName: robotName, isVoice: isVoice, img: robotImage, value: words, index: ++num, isSen: true, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); playVoiceAsk(); return; } //智能问答 if (match) { if (match.length > 0 && ischat == 1) { var values = { question: match[0].question, robotName: robotName, img: robotImage, answer: match[0].answer, answerId: match[0].answerId, uuid: match[0].uuid, index: ++num, voiceTime: match[0].voiceTime, isVoice: isVoice, isTime: match[0].voiceTime === "undefined" || match[0].voiceTime === "" ? false : true, iswenda: true, like: like, voiceBtnId: voiceBtnId }; appendHtml(ansTemplate(values), 8); //寒暄 } else if (match.length > 0 && ischat == 0) { var values = { robotName: robotName, img: robotImage, answer: match[0].answer, answerId: match[0].answerId, uuid: match[0].uuid, isVoice: isVoice, index: ++num, voiceTime: match[0].voiceTime, isTime: match[0].voiceTime === "undefined" || match[0].voiceTime === "" ? false : true, iswenda: false, voiceBtnId: voiceBtnId }; appendHtml(ansTemplate(values), 8); } else if (match.length == 0 && like.length > 0) { if (textValue != null) { if (textValue == like[0].question.replace(/\n/g, "")) { // console.log("匹配第一条:" + like[0].question.replace(/\n/g, "")); var values = { robotName: robotName, img: robotImage, answer: like[0].answer, uuid: like[0].uuid, index: ++num, isVoice: isVoice, iswenda: true, voiceBtnId: voiceBtnId, }; appendHtml(ansTemplate(values), 8); playVoiceAsk(); return; } } var values = { robotName: robotName, img: robotImage, like: like, keyWord: textValue, isVoice: isVoice, index: ++num, voiceBtnId: voiceBtnId, webSearch: webSearchOn }; var smartAnswer = likeDataAddIndex(like); smartList = getSmartList(smartAnswer); appendHtml(simTemplate(values), 8); } else if (match.length == 0 && like.length == 0) { var values = { robotName: robotName, isVoice: isVoice, isUnknow: true, unknow: unknow, index: ++num, img: robotImage, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); } } else { var values = { robotName: robotName, isVoice: isVoice, isUnknow: true, index: ++num, unknow: "真的非常抱歉,从网站也未能检索到您需要的信息,您可以前往福建省12345平台进行咨询。", img: robotImage, voiceBtnId: voiceBtnId }; appendHtml(othTemplate(values), 8); } playVoiceAsk(); } /** * * @param html 追加的html * @param type 类型 1:欢迎及警告 3:用户 8:完全匹配及寒暄库 * @param isvoice 是否语音 */ function appendHtml(value, type) { var commonHtml = ""; if (type == 1) { var values = {robotName: robotName, isSys: true, value: value, img: robotImage}; commonHtml = othTemplate(values); } else if (type == 8) { commonHtml = value; } else if (type == 3) { commonHtml = value; } else { commonHtml = value; } $("#answerList").html(" ") $("#answerList").append(commonHtml); var div = document.getElementById('answerList'); div.scrollTop = div.scrollHeight; } $(window).keydown(function (e) { if (e.keyCode == 38) { index = (index-- < 0 ? size - 1 : index); $(".completionQues").find("li").each(function (_index, item) { if (index == _index) { $(this).addClass("li_hover"); } else { $(this).removeClass("li_hover"); } }) } else if (e.keyCode == 40) { index = (index++ > size - 1 ? 0 : index); $(".completionQues").find("li").each(function (_index, item) { if (index == _index) { $(this).addClass("li_hover"); } else { $(this).removeClass("li_hover"); } }) } else if (e.keyCode == 13) { return; } }) function play(id, ele) { $("audio").each(function (index, item) { $(this)[0].pause(); }); var audio = document.getElementById(id); console.log(audio,"0202");//测试 audio.loop = false; audio.addEventListener('ended', function () { $(ele).find("span").eq(0).removeClass().addClass("yy_btn"); }, false); audio.load(); var _class = $(ele).find("span").eq(0).attr("class"); if (_class == "yy_btn") { $(".yy_btn_close").each(function (index, item) { $(this).removeClass().addClass("yy_btn"); }) $(ele).find("span").eq(0).removeClass().addClass("yy_btn_close"); audio.play(); } else if (_class == "yy_btn_close") { $(ele).find("span").eq(0).removeClass().addClass("yy_btn"); audio.pause(); } } function isAndroidOrIOSOrPc() { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //Android终端 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端 if (IsPC()) { return "pc"; } else if (isAndroid) { return "android"; } else if (isIOS) { return "ios"; } else { return "other"; } } function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod", "MicroMessenger"]; var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } $("#yuyin").click(function(){ $(".h-start1").show(); }) $("#jianpan").click(function(){ if(ifs){uploadRec()} $(".h-start1").hide() })